[Oracle] 사용자 생성 및 권한 설정

Wonjun Seo·2023년 4월 12일
0

1. 오라클 유저 생성

CREATE USER [user_name]
IDENTIFIED BY [password]
DEFAULT TABLESPACE [tablespace_name]
TEMPORARY TABLESPACE TEMP;
CREATE USER scott IDENTIFIED BY tiger;

하지만, Oracle 12C 버전부터는 사용자명에 c##을 붙이지 않으면 다음과 같은 오류가 발생할 수 있습니다.

Error report -
ORA-65096: invalid common user or role name
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 consist only of ASCII characters, and must contain the prefix
specified in common_user_prefix parameter.
Action: Specify a valid common user or role name.


이를 해결하기 위해서는, 사용자명 앞에 c##을 붙여주거나, _oracle_script 설정을 true로 변경하면 c## 접두어를 붙이지 않고 사용자를 생성할 수 있다.

ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;

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


2. 권한 부여하기

GRANT connect, resource, dba TO [user_name];

CREATE TABLE(테이블 생성 권한)

GRANT CREATE ANY TABLE TO scott;
GRANT DROP ANY TABLE TO scott;

CREATE SESSION(데이터베이스 접속 권한)

GRANT CREATE SESSION TO scott;

UNLIMITED TABLESPACE (테이블스페이스 사용 권한)

GRANT UNLIMITED TABLESPACE TO scott;

CREATE INDEX(인덱스 생성 권한)

GRANT CREATE ANY INDEX TO scott;
GRANT DROP ANY INDEX TO scott;


3. 권환 회수하기

REVOKE CREATE SESSION FROM scott;
REVOKE CREATE TABLE FROM scott;
REVOKE DROP ANY TABLE FROM scott;
REVOKE CREATE ANY TABLE FROM scott;
REVOKE UNLIMITED TABLESPACE FROM scott;
REVOKE CREATE ANY INDEX FROM scott;
REVOKE DROP ANY INDEX FROM scott;

0개의 댓글