개발은 너무해

with grant option & with admin option 본문

Oracle/Oracle Scrap

with grant option & with admin option

까칠 평생초보 2007.04.27 17:27

with grant option과 with admin option  

(둘다 실행 권한을 받은 user가 다시 실행 권한을 다른 user에게 줄 수 있게 해주는 option이다.) 
-- 차이는 with admin option으로 권한을 받은 user1이 다른 user2에게 권한을 부여한 후 user1으로부터 
  권한을 revoke하면 user1의 권한만 revoke되나 
  with grant option으로 부여하면 user1에게 revoke 될 시 user2의 권한도 cascade로 revoke된다. 


oracle@swsvrctr:/home/oracle> sqlplus internal 

SQL> col grantor format a10 
SQL> col grantee format a10 
SQL> col table_name format a10 
SQL> col table_schema format a10 
SQL> col privilege format a25 
SQL> grant create user to scott with admin option; ==> with admin option으로 권한 부여후 
SQL> connect scott/tiger 
SQL> grant create user to oracle; ==> 다시 oracle 에게 같은 권한 부여후 
SQL> connect internal 
SQL> select * from dba_sys_privs 
 2  where grantee in ('SCOTT','ORACLE'); 

GRANTEE    PRIVILEGE                 ADMIN_ 
---------- ------------------------- ------ 
ORACLE     CREATE USER               NO 
SCOTT      CREATE USER               YES 
SCOTT      UNLIMITED TABLESPACE      NO 

SQL> revoke create user from scott; ==> scott의 권한을 revoke 
SQL> select * from dba_sys_privs 
 2  where grantee in ('SCOTT','ORACLE'); 

GRANTEE    PRIVILEGE                 ADMIN_ 
---------- ------------------------- ------ 
ORACLE     CREATE USER               NO ==> scott의 create user 권한만 revoke되었다.  
SCOTT      UNLIMITED TABLESPACE      NO     oracle권한은 그대로 

SQL> grant select on dept to oracle with grant option; ==> with grant option 으로 권한 부여후 
SQL> connect / 
SQL> create user myuser identified by myuser1$ 
 2  default tablespace ts_user1 
 3  temporary tablespace temp; 

SQL> grant select on scott.dept to myuser; ==> 다시 같은 권한을 다른 myuser에게 부여 

Grant succeeded. 

SQL> select * from all_tab_privs 
 2  where table_name='DEPT'; 

GRANTOR    GRANTEE    TABLE_SCHE TABLE_NAME PRIVILEGE                 GRANTA 
---------- ---------- ---------- ---------- ------------------------- ------ 
SCOTT      ORACLE     SCOTT      DEPT       SELECT                    YES 
ORACLE     MYUSER     SCOTT      DEPT       SELECT                    NO 

SQL> revoke select on dept from oracle; ==> oracle의 권한을 revoke 

Revoke succeeded. 

SQL> select * from all_tab_privs           ==> with grant option으로 생성된 이하 myuser의 권한도 
 2  where table_name='DEPT';      revoke 되었다. 

no rows selected

 

 

===================================================================================

http://cafe.naver.com/jjuvva.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=287

푸뇽(edood)님 께서 작성하신 글입니다.

스크랩이 안되서 긁어왔습니다.

0 Comments
댓글쓰기 폼