[Oracle] 사용자 생성 및 삭제 방법 (Create User)

오라클에서 유저의 계정을 생성할 때는 CREATE USER 문을 사용한다. 사용자를 생성할 때 테이블스페이스, 사용자 최초 로그인 시 암호 변경 등을 설정할 수 있으며, 오라클 12c 버전부터 사용자를 생성할 때 ORA-65096 오류가 발생할 수 있는데 이럴 때는 사용자명 앞에 c##을 붙여주면 된다. 

 

오라클 사용자 생성

목차
  1. 사용자 생성 (CREATE USER)
  2. 사용자 생성 오류 처리 (오라클 12c 이상)
  3. 사용자 생성 상세 설정 (테이블스페이스 등)
  4. 사용자 삭제 (DROP USER)

 

사용자 생성 (CREATE USER)

CREATE USER scott IDENTIFIED BY tiger;

 

CREATE USER [사용자명] IDENTIFIED BY [암호]

 

오라클 12c  버전부터 사용자명에 c##을 붙이지 않으면 오류가 발생할 수 있는데, 사용자명에 c##(c##scott)을 붙이거나 _oracle_script 설정을 true로 변경하면 해결할 수 있다. 아래의 오류 처리 방법을 참고하면 된다.

 

사용자 생성 후 시스템 권한이 부여 되어야 데이터베이스 로그인 및 테이블 생성이 가능하다.

 

SQL*Plus를 사용할 경우

sqlplus sys/oracle as sysdba

ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;

CREATE USER scott IDENTIFIED BY tiger;

 

사용자 생성 오류 처리 (오라클 12c 이상)

ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.
65096. 00000 -  "invalid common user or role name"
*Cause:    An attempt was made to create a common user or role with a name
           that was not valid for common users or roles.  In addition to
           the usual rules for user and role names, common user and role
           names must start with C## or c## and consist only of ASCII
           characters.
*Action:   Specify a valid common user or role name.

 

오라클 12.1 버전부터 멀티 테넌트 기능을 사용할 수 있다. 멀티 테넌트 기능을 사용하면 데이터베이스가 CDB(Container DB)로 동작한다. CDB에서 사용자를 생성할 때는 c## 접두어를 붙여야 에러가 발생하지 않는다.

 

CREATE USER c##scott IDENTIFIED BY tiger;

 

c## 접두어를 붙여서 사용자를 생성하면 오류가 발생하지 않는다.

_oracle_script 설정을 true로 변경하면 c## 접두어를 붙이지 않고 사용자를 생성할 수 있다.

 

ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;

 

CREATE USER scott IDENTIFIED BY tiger;

 

_oracle_script 설정을 true로 변경 후 c## 접두어를 붙이지 않고 사용자를 생성할 수 있다.

 

사용자 생성 상세 설정 (테이블스페이스 등)

CREATE USER scott IDENTIFIED BY tiger
       DEFAULT   TABLESPACE tblspace1 --테이블스페이스명
       TEMPORARY TABLESPACE temp1;    --임시테이블스페이스명

 

사용자 생성 시 테이블스페이스와 임시 테이블스페이스를 지정할 수 있다.

 

CREATE USER scott IDENTIFIED BY tiger
       DEFAULT   TABLESPACE tblspace1 --테이블스페이스명
       TEMPORARY TABLESPACE temp1     --임시테이블스페이스명
       QUOTA 10M on tblspace1         --tblspace1 테이블스페이스에 10M 사용가능  
       --QUOTA UNLIMITED ON tblspace1 --tblspace1 테이블스페이스 무제한 사용가능
       PROFILE   profile1             --사용자 프로필 지정     
       PASSWORD  EXPIRE               --사용자 최초 로그인 암호 재설정
       ACCOUNT   LOCK;                --사용자 계정 잠금 또는 해제 (LOCK or UNLOCK)

 

위는 사용자 생성 시 사용할 수 있는 모든 옵션을 사용하여 생성하는 방법이다.

필요하지 않은 옵션의 라인은 제거 후 사용하면 된다.

 

사용자 삭제 (DROP USER)

DROP USER scott CASCADE;

 

DROP USER [사용자명] CASCADE

 

CASCADE 키워드를 사용하지 않고 DROP USER [사용자명]을 사용해도 되지만, 해당 스키마에 오브젝트가 존재하면 삭제할 수 없다. CASCADE 키워드를 사용하여 스키마에 속한 모든 오브젝트를 함께 삭제해야 한다.

 

 

[Oracle] 시스템 권한 부여 방법 (GRANT, REVOKE)

오라클에서 시스템 권한을 부여하거나 회수(제거) 하기 위해서는 GRANT, REVOKE 문을 사용하면 된다. 사용자를 생성 후 시스템 권한이 부여되어야 데이터베이스 접속(로그인)이 가능하고 테이블 생

gent.tistory.com

 

댓글

Designed by JB FACTORY