[Admin] Role

오라클/Admin 2010. 9. 4. 19:04

앞에서 보았던 권한들을 그 많은 것을 일일이 유저들에게 몇개씩 노가다로 주기가 귀찮은 일이다. 그래서 매번 그렇게 주는 것보다는 롤이라는 선물셋트를 만들어 그 안에 유저들이 원하는 권한들만을 넣어 한번에 그 선물셋트인 롤만 부여하면 훨씬 편하고 권한 관리 또한 용이할 것이다.

이처럼 롤은 권한 관리를 편하게 하기 위해 나온 개념이다.

프로필은 여러 개 만들어놓고도 한명이 동시에 사용을 못하는데, 권한이나 롤은 한명이 여러 개를 쓸 수 있다.


◆ 롤 부여

SQL> grant 권한명 to 롤1;

SQL> grant 롤1 to 롤2;

SQL> grant 롤2 to 유저명 [with admin option];
여러가지 권한들을 롤에 넣을 수 있고, 롤들을 또 더 커다란 롤에 넣을 수 있고, 그 롤을 유저에게 주면 결과적으로 이전에 들어가있던 권한들을 한꺼번에 부여한 것과 같다.
WITH ADMIN OPTION : 롤 또한 다른 유저에게 부여 가능하다.


◆ 롤 회수
SQL> revoke 롤명 from 유저명;

SQL> revoke 롤명 from PUBLIC;
PUBLIC : 모든 사용자로부터 해당 롤을 회수한다.


◆ 롤 제거
SQL> drop role 롤명;


◆ 미리 정의된 롤
  - CONNECT
  - RESOURCE
  - DBA


◆ 디폴트 롤
SQL> alter user 유저명
   default role 롤1, 롤2;
유저에게 롤1, 롤2, 롤3이 부여되어 있었다고 할 때, 위 명령을 날리면 그 유저는 롤1과 롤2만 쓰고 나머지 롤3은 일시적으로 안쓴다.
SQL> alter user 유저명
   default role all;
해당 유저에게 부여된 모든 롤을 사용한다.
SQL> alter user 유저명
   default role all except 롤3;
해당 유저에게 부여된 모든 롤을 사용하되 롤3은 제외한다.
SQL> alter user 유저명
   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';


◆ 미리 정의된 DBA롤 안에 부여받은 권한들 조회
SQL> select *
   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
Posted by 겨울섬
,