[Oracle] 시스템 권한 부여 방법 (GRANT, REVOKE)
- 데이터베이스/오라클
- 2022. 8. 22.
오라클에서 시스템 권한을 부여하거나 회수(제거) 하기 위해서는 GRANT, REVOKE 문을 사용하면 된다. 사용자를 생성 후 시스템 권한이 부여되어야 데이터베이스 접속(로그인)이 가능하고 테이블 생성 및 데이터 입력(INSERT)이 가능하다. 세션 권한이 부여되지 않으면 사용자가 로그인할 때 ORA-01045 오류가 발생할 수 있다.
목차 |
CREATE SESSION (데이터베이스 접속 권한)
GRANT CREATE SESSION TO scott;
GRANT CREATE SESSION TO [사용자명]
사용자를 생성 후 세션 권한이 부여되어야 데이터베이스 접속이 가능하다.
세션 권한이 부여되지 않은 상태에서 데이터베이스 접속을 하면 아래와 같은 오류가 발생한다.
ORA-01045: 사용자 SCOTT는 CREATE SESSION 권한을 가지고있지 않음; 로그온이 거절되었습니다 |
CREATE TABLE (테이블 생성 권한)
GRANT CREATE TABLE TO scott;
테이블 생성 권한이 부여되면 자신의 스키마(scott)에 테이블 생성 및 삭제가 가능하다.
GRANT CREATE ANY TABLE TO scott;
GRANT DROP ANY TABLE TO scott;
CREATE ANY TABLE 권한을 부여하면 다른 사용자의 스키마에 테이블을 생성할 수 있다. 예를 들어 hr이라는 스키마에 테이블을 생성할 수 있으며, DROP ANY TABLE 권한이 부여되어야 다른 스키마에 생성한 테이블을 삭제할 수 있다.
UNLIMITED TABLESPACE (테이블스페이스 사용 권한)
GRANT UNLIMITED TABLESPACE TO scott;
UNLIMITED TABLESPACE 권한은 모든 테이블스페이스를 제한 없이 사용할 수 있는 권한이다. 일반 사용자가 모든 테이블스페이스를 제한 없이 사용하는 것은 운영 측면에서 좋지 않기 때문에 아래와 같이 사용할 것을 권장한다.
ALTER USER scott QUOTA 10M ON tblspace1;
ALTER USER [사용자명] QUOTA [제한용량] ON [테이블스페이스명]
해당 사용자에 지정된 테이블스페이스에 제한용량 및 권한을 부여할 수 있다.
CREATE INDEX (인덱스 생성 권한)
GRANT CREATE ANY INDEX TO scott;
GRANT DROP ANY INDEX TO scott;
CREATE ANY INDEX, DROP ANY INDEX 권한을 부여하면 인덱스 생성 및 제거를 할 수 있다.
권한 회수(제거) 방법 (REVOKE)
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;
REVOKE [권한 구분] FROM [사용자명]
REVOKE 문을 사용하여 부여된 권한을 회수(제거) 할 수 있다.
시스템 권한 부여 방법 정리
구분 | 시스템 권한 종류 |
SESSION | CREATE SESSION ALTER SESSION RESTRICTED SESSION |
TABLE | CREATE TABLE CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE |
TABLESPACE | CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE |
INDEX | CREATE INDEX ALTER INDEX RESTRICTED INDEX |