유저 시스템 권한
- CREATE SESSION
- CREATE TABLE
- CREATE SEQUENCE
- CREATE VIEW
- CREATE PROCEDURE
역할 생성 및 역할에 권한 부여
역할 생성
CREATE ROLE manager;
역할에 권한 부여
GRANT create table, create view
TO manager;
유저에게 역할 부여
GRANT manager TO alice;
CREATE USER user01
IDENTIFIED BY oracle_4U ;
GRANT create session, create view, create table TO user01 ;
GRANT select on ora1.employees TO user01 ;
CREATE ROLE manager ;
GRANT create session, create view, create table TO manager ;
GRANT all on ora1.employees TO manager ;
GRANT manager TO user01 ;
SELECT *
FROM dba_role_privs
WHERE grantee = 'USER01';
SELECT *
FROM dba_sys_privs
WHERE grantee = 'USER01';
SELECT *
FROM dba_tab_privs
WHERE grantee = 'USER01';
SELECT *
FROM dba_tab_privs
WHERE grantee = 'MANAGER';
REVOKE manager FROM user01 ;
객체 권한
| 객체 권한 | 테이블 | 뷰 | 시퀀스 |
|---|
| ALTER | ✔️ | | ✔️ |
| DELETE | ✔️ | ✔️ | |
| INDEX | ✔️ | | |
| INSERT | ✔️ | ✔️ | |
| REFERENCES | ✔️ | | |
| SELECT | ✔️ | ✔️ | ✔️ |
| UPDATE | ✔️ | ✔️ | |
GRANT object_priv [(columns)]
ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
객체 권한 부여
- employees 테이블에 query 권한 부여
GRANT select
ON employees
TO demo;
- 특정 열을 갱신할 수 있는 권한을 유저와 역할에 부여
GRANT update {department_name, location_id}
ON departments
TO demo, manager;
권한 전달
GRANT select, insert
ON departments
TO demo
WITH GRANT OPTION;
- 시스템의 모든 유저가 departments 테이블에서 데이터를 query 할 수 있도록 허용
GRANT select
ON departments
TO PUBLIC;
부여된 권한 확인

객체 권한 취소
REVOKE문을 사용하여 다른 유저에게 부여된 권한 취소 가능
WITH GRANT OPTION 절을 통해 다른 유저에게 부여된 권한 취소 가능
REVOKE {privilege [,privilege...] | ALL}
ON object
FROM {user[, user...] | role | PUBLIC}
[CASCADE CONSTRAINTS];