CREATE USER

CREATE USER

 

ORACLE CREATE USER 공식 메뉴얼

 

오라클 공식 메뉴얼을 토대로 계정을 생성해 보자.

참고로 내가 다녔던 1금융에서 생성했던 방식을 그대로 사용하겠다.

(특별한건 아마 없을것 같다.)

 


DB계정생성
CREATE USER TEST_USR        --사용할 USER명을 기입한다.
IDENTIFIED BY "Test123!@"   --PW를 쌍따옴표 안에 기입한다. (특수문자,대소문자 구분 필요시)
DEFAULT TABLESPACE TS_IMSI  --TABLE&INDEX생성시 T/S를 명시하지 않아도 자동으로 이 부분에 설정한 T/S에 생성된다.
QUOTA UNLIMITED ON TS_IMSI  --DEFAULT T/S에서 사용할 SIZE를 설정한다. [QUOTA 10M ON]으로 하면 10MB까지만 사용할수 있다는 뜻이다.
PROFILE PF_TEST             --PROFILE을 설정한다. PROFILE에는 세션에 대한 각종 차단등 보안관련 설정이 가능하다.

위와 같이 줄바꿈하면서 쓰지않고 한줄로 써도 된다.

 

모든 옵션을 빼고 CREATE USER TEST_USR IDENTIFIED BY "Test123!@" 만 날려줘도 에러없이 생성된다.

대신 옵션중 일부는 DEFAULT가 설정된 값으로,

일부는 아무값도 들어가지 않게 되므로 ALTER문으로 추가로 작업해주어야 한다.

 

DEFAULT TABLESPACE를 지정해 주지 않으면

파라미터에 설정되어있는 DEFAULT T/S를 따라가게 되어

USERS 혹은 SYSTEM이 잡힐수도 있으니 큰 일 날 수 있다.

(물론 사용하는 환경의 파라미터를 보면 알 수 있다.)

 

추가로 다른 옵션을 부여할 필요없이 위와 같이 생성하면

업무에 아무 문제없이 사용할 수 있다.

 


DB계정 생성후 추가로 해야하는 작업

 

CREATE USER만 수행했다고 해서 바로 로그인을 할 수 있는것은 아니다.

DB접속권한과 기타 필요한 권한을 부여해 줘야한다.

 

일반적으로 아래 권한은 기본적으로 부여한다.

GRANT CONNECT TO USER_NAME;        --CONNECT라는 ROLE을 USER에 부여를 한다.
GRANT CREATE SESSION TO USER_NAME; --DB를 접속할수 있는 CREATE SESSION권한을 부여한다.

## 특정 테이블에 대한 권한을 부여하려면 아래와 같다.
GRANT SELECT ON OWNER.TABLE_NAME TO USER_NAME; --OWNER.TABLE_NAME에 조회권한을 USER에 부여한다.
GRANT INSERT, UPDATE, DELETE ON OWNER.TABLE TO USER_NAME; --삽입,수정,삭제 권한을 부여한다.


## DB접속 권한을 부여하고 싶다면 위의 권한중 하나만 부여하면된다.
## CONNECT ROLE에는 CREATE SESSION 권한이 부여되어있고 이 ROLE을 USER에 부여하는 개념이다.

 

권한 관련해서는 따로 글을 남기도록 하겠다.

 

 

 

ORA-65096


ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. (invalid common user or role name)
65096. 00000 - “invalid common user or role name”

원인
  • 사용자 또는 롤을 생성할 때, 해당 이름이 유효하지 않은 경우 발생한다.
  • 오라클 12c  버전부터 사용자명에 c##을 붙이지 않으면 오류가 발생할 수 있다.

 

조치
  • 올바른 이름의 사용자 또는 롤 이름을 작성한다.
  • 사용자 및 롤 이름은 “C##” 또는 “c##“로 시작하고 ASCII 문자로만 구성되어야 한다.
CREATE USER c##test IDENTIFIED BY “test123”;

 

조치2
  • _oracle_script 파라미터를 TRUE로 설정하면 “c##” 접두어를 사용하지 않고 사용자를 생성할 수 있다.
ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;
CREATE USER test IDENTIFIED BY “test123”;

 

+ Recent posts