본문 바로가기

IT/oracle

객체권한(Object Privileges) 이란?

객체권한은 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;
 권한이 부여되었습니다.
	

객체권한의 회수

시스템 권한의 회수문법

  • - 객체 권한의 철회는 그 권한을 부여한 부여자만이 수행할수 있다.
  • 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 GRANT 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사용자가 부여받은 객체 컬럼에 대한 모든 객체권한

태그

문서에 대하여

  • - 강좌 URL : http://www.gurubee.net/lecture/1009
  • - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
  • 구루비의 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.


'IT > oracle' 카테고리의 다른 글

ARCHIVELOG 모드  (0) 2015.04.06
NOARCHIVELOG 모드  (0) 2015.04.06
Backup의 종류  (0) 2015.04.06
Oracle Backup And Recovery  (0) 2015.04.06
데이터베이스 링크(Database Link)란?  (0) 2015.04.06
SQL*PLUS 사용법  (0) 2015.02.05
NLS_DATE_FORMAT  (0) 2015.02.03
Oracle FlashBack 을 이용한 데이터 복구  (0) 2015.02.03
오라클 RMAN 백업의 주요 특징  (0) 2015.02.02
아카이브 로그 모드(Archive Log Mode)란?  (0) 2015.02.02