2.3.2 객체 권한(Object Privileges)

강좌 URL : 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;
 권한이 부여되었습니다.
	

객체권한의 회수

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

답글 남기기 0

Your email address will not be published. Required fields are marked *