2020. 7. 2.

[Oracle] 관리자 9장 4 Role 생성과 권한 할당


CREATE ROLE <role >
2 [IDENTIFIED BY <암호>];
- Role을 생성한다.

DROP ROLE <role >;
- Role을 삭제한다.

GRANT <role > TO <user | role >;
- Role user role에 할당 한다.
- Role role 할당되는 경우 순환해서 할당되지 않는다.

DESC dba_roles;

SELECT role FROM dba_roles;
미리 만들어진 role은 새로운 role을 만들 때 참조하기 위한 role이다. connect, resource, dba 등은 매우 유용한 예제이다.

CREATE ROLE rm; 
사용될 role 생성한다.

CREATE ROLE rs1;
CREATE ROLE rs2;
CREATE ROLE rs3;

SELECT role FROM dba_roles
WHERE role IN ('RM','RS1','RS2','RS3');

GRANT create session, create table, create sequence TO rs1;
role 시스템 권한을 부여한다.

GRANT create trigger, create procedure TO rs2;

SELECT role, privilege FROM role_sys_privs
WHERE role IN ('RM','RS1','RS2','RS3');
ORDER BY 1;
role 부여된 시스템 권한을 조회한다.

SELECT grantee, privilege FROM dba_sys_privs
WHERE grantee IN ('RM','RS1','RS2','RS3');
ORDER BY 1;
role_sys_privs 정보는 모두 dba_sys_privs에서 조회 가능하다.

GRANT select, insert ON u1.u11 TO rs3;
role 객체 권한을 부여한다.

SELECT role, owner, table_name, privilege FROM role_tab_privs
WHERE role IN ('RM','RS1','RS2','RS3');
role에 부여된 객체 권한을 조회한다.

SELECT grantee, owner, table_name, privilege, grantor FROM dba_tab_privs
WHERE grantee IN ('RM','RS1','RS2','RS3');

GRANT rs1, rs2, rs3 TO rm;
role role 부여한다.

SELECT role, granted_role FROM role_role_privs
WHERE role IN ('RM','RS1','RS2','RS3');
role에 부여된 role을 조회한다.

SELECT grantee, granted_role FROM dba_role_privs
WHERE grantee IN ('RM','RS1','RS2','RS3');

GRANT rm TO rs1;
role role 부여할 때는 순환해서는 안된다.

댓글 없음:

댓글 쓰기