2 분 소요

DB


  • 여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합이다.
  • 자료를 구조화 하여 저장함으로써 자료 검색과 갱신의 효율을 높일 수 있다.

Oracle DB


  • DB 서버가 통합된 하나의 스토리지를 공유하는 방식이다.
  • 오라클 db 는 mysql 과 달리 데이터 베이스를 만드는 것이 아닌 사용자를 만들고 권한을 부여한다.
  • 사용자 중심으로 테이블을 관리한다.

Oracle 사용자 생성

  1. su - oracle 명령을 이용하여 oracle 사용자로 전환한다.
    Pasted image 20230409214824
  2. sqlplus / as sysdba 명령을 통해 SQL 창으로 들어가자.
    Pasted image 20230409220051
  3. CREATE USER "사용자명" identified by "비번" 명령을 SQL 창에 입력하여 사용자를 생성한다.
  4. 여기서 ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. 라는 오류가 발생 한다면 사용자명 앞에 c## 또는 C## 을 붙여야한다.
    CREATE USER "c##사용자명" identified by "비번"
  5. select username from dba_users; 명령을 SQL 창에 입력하여 새로 만든 계정을 확인할 수 있다.
  6. 새로 만든 계정에 접속할려고 하면 권한이 없다는 에러가 발생한다. SYS 계정으로 먼저 연결한 다음 권한을 부여해줘야 한다.
  7. conn 사용자명SQL 창에 입력하여 새로 만든 계정으로 접속한다.
  8. 테이블 생성을 해보자. 밑에는 예시 테이블이다.
  9. 생성한 테이블을 확인하자. TEST 라는 테이블이 만들어진 것을 확인할 수 있다.
  10. 생성한 테이블에 데이터를 넣어보자.
  11. ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다. 오류가 발생하였다. 해당 에러는 users 테이블스페이스에서 얼마만큼의 영역을 할당한것인지 정해지지 않은 상태이기 때문이다. 해결 방법은 해당 테이블스페이스에 대해 공간을 할당해 주면된다.

  12. 이제 다시 insert 명령어로 데이터를 넣어보자.
  13. 테이블에 잘 들어갔는지 확인해 보자. 데이터가 db에 잘 들어갔다.

Oracle DB 명령어


  • show user : 현재 접속중인 유저를 알 수 있다.
  • SELECT * FROM tab; : 현재 계정의 테이블 목록 조회하기.
  • select * from all_users; : 계정 정보들 확인하기.
  • SELECT owner FROM dba_tables WHERE table_name= '테이블명'; : 테이블 소유자가 누구인지 확인할 수 있다. 단 SYS 유저로 접속한다음 이 명령어를 사용해야 한다.
  • CREATE USER 사용자명 IDENTIFIED BY 암호; : 사용자 생성.
  • ALTER USER 사용자명 IDENTIFIED BY 새로운 암호; : 사용자 비밀번호 변경.
  • DROP USER 사용자명 CASCADE; : 사용자 삭제.
  • grant 권한,권한2,.. to 계정명; : 권한 부여하기.
  • revoke 권한,권한2,.. from 계정명; : 권한 회수하기(취소하기).
  • commit; : 지금 까지의 변경 사항들 적용하기.
  • select * from DBA_ROLE_PRIVS WHERE GRANTEE = 사용자명(대문자); : 사용자에게 부여된 권한들을 확인할 수 있다.
  • delete from 테이블명; : 테이블의 모든 행을 삭제한다.
  • drop table 테이블명; : 테이블을 삭제한다. 정확히는 휴지통으로 보낸다.
  • drop table 테이블 이름 purge; : 휴지통으로 보내지 않고 테이블을 완전 삭제 한다.
  • show recyclebin; : 휴지통의 테이블들 조회.
  • FLASHBACK TABLE 테이블 이름 TO BEFORE DROP; : 휴지통의 테이블 복원.
  • PURGE RECYCLEBIN; : 휴지통 비우기.
  • PURGE TABLE 테이블 이름; : 휴지통에서 특정 테이블만 삭제.
  • PURGE DBA_RECYCLEBIN; : DBA 권한으로 휴지통 내 테이블 전체 삭제.
  • select status from v$instance; : 현재 DB 상태 확인하기.
  • DELETE FROM 테이블명 WHERE 조건; : 테이블에 있는 조건에 맞는 행을 삭제한다.



참고 사이트 목록

참고 사이트Permalink

댓글남기기