블로그 이미지
숏퐁숑

카테고리

분류 전체보기 (70)
게임기획자 준비 (18)
게임기획 참고자료 (7)
프로그램 (33)
숨쉬기 활동 (10)
Total
Today
Yesterday

달력

« » 2024.10
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

with grant option 과 with admin option에 대해 테스트를 하기 전에

쉽게 이해하실수 있도록 기본적인 셋팅을 하도록 하겠다.

 

C:\> sqlplus "/as sysdba"

 

1. 사용자 생성(USER_1, USER_2)

SQL> create user user_1 identified by user_1 default tablespace users;

사용자가 생성되었습니다.

SQL> create user user_2 identified by user_2 default tablespace users;

사용자가 생성되었습니다.

 

2. 접속 권한 및 간단한 권한 주기

SQL> grant create session, create table, create view to user_1;

권한이 부여되었습니다.

SQL> grant create session, create table to user_2;

권한이 부여되었습니다.

 

이제 with grant option 과 with admin option 을 알아보자.

 

(1) with grant option

 

기본적으로 scott 계정은 다들 가지고 계시니 scott 계정으로 접속한다.

SQL> conn scott/tiger

연결되었습니다.

 

scott이 user_1에게 emp 테이블을 select 할수 있는 권한을 with grant option을 써서 부여 하도록 한다.

SQL> grant select on emp to user_1 with grant option;

권한이 부여되었습니다.

SQL> select * from user_tab_privs
2 where table_name='EMP';

GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
---------- ---------- --------------- --------------- --------------- ---- ---
USER_1 SCOTT EMP SCOTT SELECT YES NO

 

 

scott에게 받은 권한을 똑같이 user_2에게 부여한다.

SQL> conn user_1/user_1
연결되었습니다.
SQL> grant select on scott.emp to user_2 with grant option;

권한이 부여되었습니다.

SQL> select * from user_tab_privs
2 where table_name='EMP';

GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
---------- ---------- --------------- --------------- --------------- ---- ---
USER_1 SCOTT EMP SCOTT SELECT YES NO
USER_2 SCOTT EMP USER_1 SELECT YES NO

 

USER_TAB_PRIVS 테이블은 누구의 소유이며 권한자 및 권한을 부여 받은 자를 확인 할 수 있다.

 

이제 부여한 권한을 다시 회수 할 것이다. 어떻게 회수가 되는지 확인이 필요하다.

 

SQL> conn scott/tiger
연결되었습니다.
SQL> revoke select on emp from user_1;

권한이 취소되었습니다.

 

SQL> conn user_1/user_1;
연결되었습니다.
SQL> select * from user_tab_privs
2 where table_name='EMP';

선택된 레코드가 없습니다.

 

SQL> conn user_2/user_2;
연결되었습니다.
SQL> select * from user_tab_privs
2 where table_name='EMP';

선택된 레코드가 없습니다.

 

※ scott이 user_1의 권한 revoke 하였지만, user_1이 user_2에게 부여한 권한도 같이 회수가 되는 것을 볼 수 있다.

 

(2) with admin option

 

SQL> conn /as sysdba

연결되었습니다.

 

SQL> grant alter session to user_1 with admin option;

권한이 부여되었습니다.

 

SQL> select * from dba_sys_privs where grantee like 'USER%';

GRANTEE PRIVILEGE ADM
---------- ------------------- ---
USER_1 CREATE VIEW NO
USER_1 CREATE TABLE NO
USER_1 ALTER SESSION YES
USER_1 CREATE SESSION NO
USER_2 CREATE TABLE NO
USER_2 CREATE SESSION NO

6 개의 행이 선택되었습니다.

 

SQL> conn user_1/user_1
연결되었습니다.
SQL> grant alter session to user_2 with admin option;

권한이 부여되었습니다.

SQL> select * from user_sys_privs where username like 'USER%';

USERNAME PRIVILEGE ADM
----------------------- ------------------ ---
USER_1 CREATE VIEW NO
USER_1 CREATE TABLE NO
USER_1 ALTER SESSION YES
USER_1 CREATE SESSION NO

 

SQL> conn user_2/user_2
연결되었습니다.
SQL> select * from user_sys_privs where username like 'USER%';

USERNAME PRIVILEGE ADM
----------------------- ------------------ ---
USER_2 CREATE TABLE NO
USER_2 ALTER SESSION YES
USER_2 CREATE SESSION NO

SQL>

 

위 테이블을 보시면 ADM 컬럼에 YES로 나와있는 것을 볼수 있다.

 

이제 GRANT 권한을 회수한 것처럼 똑같이 해보겠다.

 

SQL> conn /as sysdba

 

SQL> revoke alter session from user_1;

권한이 취소되었습니다.

 

SQL> select * from dba_sys_privs where grantee like 'USER%';

GRANTEE PRIVILEGE ADM
---------- --------------- ---
USER_1 CREATE VIEW NO
USER_1 CREATE TABLE NO
USER_1 CREATE SESSION NO
USER_2 CREATE TABLE NO
USER_2 ALTER SESSION YES
USER_2 CREATE SESSION NO

 

※ dba_sys_privs를 보시면 user_2의 권한은 그대로 남아있고 user_1의 권한 회수 된것을 볼수 있다.

 

결론을 내리자면 with grant option 은 revoke 시 다른사용자에게도 부여한 권한을 같이 회수하지만 with admin option은 특정 사용자의 권한만 회수가 되고 나머지 다른사용자에게 부여된 권한은 회수가 되지 않는다.

 

사용된 테이블 : user_tab_privs

: dba_sys_privs

: user_sys_privs

'프로그램 > ORACLE' 카테고리의 다른 글

Linux 기반의 Oracle10g 설치  (0) 2016.11.30
Backup & Recovery  (0) 2016.11.30
데이터베이스]SEQUENCE(시퀀스)란 무엇인가?  (0) 2016.11.30
view에 사용되는 with check option  (0) 2016.11.30
오라클 함수 정리  (0) 2016.11.30
Posted by 숏퐁숑
, |

최근에 달린 댓글

글 보관함