출처 : 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에 입력하면 된다.
- 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; 권한이 부여되었습니다. |
객체권한 회수
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 | 사용자가 부여받은 객체 컬럼에 대한 모든 객체권한 |
'이전것 > 데이터베이스' 카테고리의 다른 글
2.3.4. 오라클 데이터 베이스를 설치하면 기본적으로 생성되는 Role (0) | 2016.11.09 |
---|---|
2.3.3. 롤(Role) (0) | 2016.11.09 |
2.3.1. 시스템 권한 (System Privileges) (0) | 2016.11.09 |
2.3. SQL의 종류 (0) | 2016.11.09 |
Oracle -> line Page Setting (0) | 2016.11.09 |