앞에서 보았던 권한들을 그 많은 것을 일일이 유저들에게 몇개씩 노가다로 주기가 귀찮은 일이다. 그래서 매번 그렇게 주는 것보다는 롤이라는 선물셋트를 만들어 그 안에 유저들이 원하는 권한들만을 넣어 한번에 그 선물셋트인 롤만 부여하면 훨씬 편하고 권한 관리 또한 용이할 것이다.
이처럼 롤은 권한 관리를 편하게 하기 위해 나온 개념이다.
프로필은 여러 개 만들어놓고도 한명이 동시에 사용을 못하는데, 권한이나 롤은 한명이 여러 개를 쓸 수 있다.
◆ 롤 부여
SQL> grant 권한명 to 롤1;
SQL> grant 롤1 to 롤2;
SQL> grant 롤2 to 유저명 [with admin option];
여러가지 권한들을 롤에 넣을 수 있고, 롤들을 또 더 커다란 롤에 넣을 수 있고, 그 롤을 유저에게 주면 결과적으로 이전에 들어가있던 권한들을 한꺼번에 부여한 것과 같다.SQL> grant 롤1 to 롤2;
SQL> grant 롤2 to 유저명 [with admin option];
WITH ADMIN OPTION : 롤 또한 다른 유저에게 부여 가능하다.
◆ 롤 회수
SQL> revoke 롤명 from 유저명;
SQL> revoke 롤명 from PUBLIC;
PUBLIC : 모든 사용자로부터 해당 롤을 회수한다.SQL> revoke 롤명 from PUBLIC;
◆ 롤 제거
SQL> drop role 롤명;
◆ 미리 정의된 롤
- CONNECT
- RESOURCE
- DBA
◆ 디폴트 롤
SQL> alter user 유저명
default role 롤1, 롤2;
유저에게 롤1, 롤2, 롤3이 부여되어 있었다고 할 때, 위 명령을 날리면 그 유저는 롤1과 롤2만 쓰고 나머지 롤3은 일시적으로 안쓴다.default role 롤1, 롤2;
SQL> alter user 유저명
default role all;
해당 유저에게 부여된 모든 롤을 사용한다.default role all;
SQL> alter user 유저명
default role all except 롤3;
해당 유저에게 부여된 모든 롤을 사용하되 롤3은 제외한다.default role all except 롤3;
SQL> alter user 유저명
default role none;
해당 유저에게 부여된 모든 롤을 사용하지 않는다.default role none;
◆ 셋 롤
유저가 일시적으로 자기가 부여받은 롤 범위 내에서 사용과 미사용을 제어 가능.
SQL> set role 롤1;
해당 유저는 롤1을 사용함.SQL> set role all;
해당 유저는 부여받은 롤을 모두 사용함.◆ 롤 관련 데이터 딕셔너리
- DBA_ROLES
- DBA_ROLE_PRIVS
- ROLE_ROL_PRIVS
- DBA_SYS_PRIVS
- ROLE_SYS_PRIVS
- ROLE_TAB_PRIVS
- SESSION_ROLES
◆ SYS계정이 부여받은 롤 조회
SQL> select *
from dba_role_privs
where grantee='SYS';
from dba_role_privs
where grantee='SYS';
◆ 미리 정의된 DBA롤 안에 부여받은 권한들 조회
SQL> select *
from dba_sys_privs
where grantee='DBA';
from dba_sys_privs
where grantee='DBA';
'오라클 > Admin' 카테고리의 다른 글
[Admin] Privilege (0) | 2010.09.04 |
---|---|
[Admin] User and Schema (0) | 2010.09.04 |
[Admin] Profile (0) | 2010.09.04 |
[Admin] Table Reorganization (0) | 2010.09.03 |
[Admin] Extent와 Block과의 관계 (0) | 2010.09.02 |