출처 : http://www.gurubee.net/lecture/1009



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


객체권한(Object Privileges)

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

- 객체 소유자는 다른 사용자에게 특정 객체권한을 부여 할 수 있다.

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

- 기본적으로 소유한 객체에 대해서는 모든 권한이 자동적으로 획득된다.

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


객체에 따른 권한 목록 예


객체권한 

테이블 

뷰 

시퀀스 

프로시저 

ALTER 



DELETE



EXECUTE




INDEX




INSERT



SELECT



객체권한 부여 문법


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

GRANT object_privilege [column] 

ON object

TO {user[,user] | role | PUBLIC]

[WITH GRANT OPTION] 

 

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

- object : 객체명

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

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

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



객체권한 부여 예제


-- scott USER에게 emp테이블을 SELECT, INSERT할 수 있는 권한을 부여했다.

-- scott USER도 다른 USER에게 그 권한을 부여 할 수 있다. 

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

권한이 부여되었습니다.


객체권한 회수


<table class="txc-table" width="784" cellspacing="0" cellpadding="0" border="0" 맑은="" 고딕",="" sans-serif;font-size:13px"="" style="border: none; border-collapse: collapse;">

REVOKE {privilege[,privilege,..] | ALL}

ON object

FROM {user[,user] | role | PUBLIC]

[CASCADE CONSTRAINTS] 

 

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

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

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



객체권한 부여 회수 예제


-- scott USER에게 부여한 emp 테이블에 대한 SELECT, INSERT 권한 회수 예제

-- 만약 scott USER가 다른 사용자에게 SELECT, INSERT권한을 부여했으면 그 권한들도 같이 회수가 된다. 

SQL>REVOKE SELECT, INSERT ON emp FROM scott; 

 권한이 회수되었습니다.



WITH GRANT OPTION을 사용하여 객체권한 회수


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

시나리오.

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

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

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


시스템 권한의 회수

결과
  - SCOTT가 STORM에게 부여한 emp 테이블에 대한 SELECT 권한을 취소하면, TEST USER가 emp 테이블을 SELECT 할 수 있는 권한도 자동으로 취소가 된다.
시스템 권한의 회수


객체권한관련 데이터 사전

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

사용자가 부여받은 객체 컬럼에 대한 모든 객체권한


블로그 이미지

잉비니

,