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을 부여할 때는 순환해서는 안된다.
댓글 없음:
댓글 쓰기