shop-wiz logo
Follow Us on Facebook Follow Us on Google+ Follow Us on Twitter Follow Us on LinkedIn
◈ Object Privileges(객체 권한)


객체 권한은 유저가 소유하고 있는 특정한 객체를 다른 사용자들이 엑세스 하거나 조작 할 수 있게 하기 위해서 생성을 합니다.


- 테이블이나 뷰, 시퀀스, 프로시저, 함수, 또는 패키지 중 지정된 한 오브젝트에 특별한 작업을
수행 할 수 있게 합니다.

- Object 소유자는 다른 사용자에게 특정 Object Privileges를 부여 할 수 있습니다.

- PUBLIC으로 권한을 부여하면 회수할 때도 PUBLIC으로 해야 합니다.

- Object Privileges는 Object Type에 따라서 다릅니다.

- 기본적으로 소유한 오브젝트에 대한 모든 권한이 자동적으로 획득됩니다

- WITH GRANT OPTION 옵션은 롤에 권한을 부여할 때는 사용할 수 없습니다


* Object에 따른 Privileges

객체권한 테이블 Sequence Procedure
ALTER    
DELETE    
EXECUTE      
INDEX      
INSERT    
REFERENCES      
SELECT  
UPDATE    


위의 표에서 맨 왼쪽에 있는 ALTER, DELETE, EXECUTE.. 등등은 object_privilege란에 오면 되고,
맨 윗줄에 있는 테이블, 뷰, 시퀀스, 프로시져 등등은 ON 다음에 있는 object에 입력하면 됩니다.


Object 권한 부여 문법

GRANT object_privilege [column] ON object TO {user[,user] | role | PUBLIC] [WITH GRANT OPTION]

- object_privilege : 부여할 객체 권한의 이름

- object : 객체명

- user, role : 부여할 사용자 이름과 다른 데이터 베이스 역할 이름

- PUBLIC : 오브젝 권한, 또는 데이터베이스 역할을 모든 사용자에게 부여할 수 있습니다.

- WITH GRANT OPTION : 권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로
부여할 수 있게 됩니다.

오브젝 권한 부여 예제
(아래는 emp 테이블이 생성되었다는 가정하에서 진행한 예제입니다. 아직 테이블이 생성되어 있지 않다면 테이블의 생성 을 참조바랍니다.

SQL>GRANT SELECT, INSERT ON emp TO shopwiz WITH GRANT OPTION;

Grant succeeded.

*설명 : shopwiz 사용자에게 emp테이블을 SELECT, INSERT할 수 있는 권한을 부여했습니다.
shopwiz 사용자도 다른 사용자에게 그 권한을 부여 할 수 있습니다.


Object 권한의 박탈

REVOKE { privilege[, privilege,,,] | ALL } ON object FROM { user[, user]|role | PUBLIC ] [CASCADE CONSTRAINTS]


- 객체 권한의 철회는 그 권한을 부여한 부여자만이 수행할수 있습니다.

- CASCADE CONSTRAINTS : 이 명령어의 사용으로 REFERENCES객체 권한에서 사용된
참조 무결성 제한을 같이 삭제 할 수 있습니다.

- WITH GRANT OPTION으로 객체 권한을 부여한 사용자의 객체 권한을 철회하면, 권한을
부여받은 사용자가 부여한 객체 권한 또한 같이 철회되는 종속철회가 발생합니다.


오브젝 권한 철회 예제

SQL>REVOKE SELECT, INSERT ON emp FROM shopwiz;
Revoke succeeded.


*설명 : shopwiz 사용자에게부여한 emp테이블에 대한 SELECT, INSERT권한이 회수 됩니다..
만약 shopwiz사용자가 다른 사용자에게 SELECT, INSERT권한을 부여했으면..
그 권한들도 같이 철회가 됩니다.

WITH GRANT OPTION을 사용하여 객체 권한 취소

WITH GRANT OPTION을 사용하여 부여한 객체 권한을 취소하면 취소 작업이 연쇄적으로 수행 됩니다.


시나리오

1. SCOTT가 STORM에게 WITH GRANT OPTION을 사용하여 emp테이블의 SELECT 권한을 부여 합니다.

2. STORM이 emp테이블의 SELECT권한을 TEST에게 부여 합니다.

3. SCOTT가 STORM에게 부여한 emp테이블의 SELECT 권한을 취소 합니다.

결과

- SCOTTt가 STORM에게 부여한 emp테이블에 대한 SELECT 권한을 취소하면 STORM이 부여한 TEST유저가 emp테이블을 SELECT할 수 있는 권한도 자동으로 취소가 됩니다.



객체 권한을 위한 일반 사용자용 데이터 사전 뷰

데이터 사전 뷰 테이블
USER_TAB_PRIVS 객체 권한의 소유자, 객체 권한 부여자, 객체 권한 피부여자를 볼수있음
USER_TAB_PRIVS_MADE 사용자가 부여한 모든 객체 권한의 뷰
USER_TAB_PRIVS_RECD 사용자가 부여받은 모든 객체 권한의 뷰
USER_COL_PRIVS 객체 권한의 소유자, 객체 권한 부여자, 객체 권한 피부여자의 컬럼의 객체 권한 뷰
USER_COL_PRIVS_MADE 사용자가 부여한 객체 컬럼에 대한 모든 객체 권한 뷰
USER_COL_PRIVS_RECD 사용자가 부여받은 객체 컬럼에 대한 모든 객체 권한 뷰


Powered by shop-wiz since 2002, e-mail:wangta69@naver.com