오라클에서 권한(Privilege)은 특정 타입의 SQL문을 실행하거나 데이터베이스나 객체에 접근할 수 있는 권리이다.시스템권한(System Privileges)이란?
- – 시스템권한은 사용자가 데이터베이스에서 특정 작업을 수행 할 수 있도록 한다
- – 권한의 ANY 키워드는 사용자가 모든 스키마에서 권한을 가짐을 의미 한다.
- – GRANT 명령은 사용자 또는 ROLE에 대해서 권한을 부여 할 수 있다.
- – REVOKE 명령은 권한을 회수 한다.
- – CREATE SESSION : 데이터 베이스를 연결할 수 있는 권한
- – CREATE ROLE : 오라클 데이터베이스 역할을 생성할 수 있는 권한
- – CREATE VIEW : 뷰의 생성 권한
- – ALTER USER : 생성한 사용자의 정의를 변경할 수 있는 권한
- – DROP USER : 생성한 사용자를 삭제시키는 권한
시스템권한 부여 문법
- – system_privilege : 부여할 시스템권한의 이름
- – role : 부여할 데이터베이스 역할의 이름
- – user, role : 부여할 사용자 이름과 다른 데이터 베이스 역할 이름
- – PUBLIC : 시스템권한, 또는 데이터베이스 역할을 모든 사용자에게 부여할 수 있다.
- – WITH ADMIN OPTION : 권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로 부여할 수 있게된다.
시스템권한 부여 예제
-- SYS 권한으로 접속한다. SQL>CONN sys/manager AS SYSDBA -- scott 사용자에게 사용자를 생성, 수정, 삭제 할 수 있는 권한을 부여하고, -- scott 사용자도 다른 사용자에게 그 권한을 부여 할 수 있도록 권한 부여. SQL>GRANT CREATE USER, ALTER USER, DROP USER TO scott WITH ADMIN OPTION; 권한이 부여되었습니다.
시스템권한의 회수
시스템권한 회수 예제
-- scott 사용자에게 부여한 생성, 수정, 삭제 권한을 회수 한다. SQL>REVOKE CREATE USER, ALTER USER, DROP USER FROM scott; 권한이 회수되었습니다.
WITH ADMIN OPTION을 사용하여 시스템권한 취소
WITH ADMIN OPTION을 사용하여 시스템권한을 부여했어도 시스템권한을 취소 할 때는 연쇄적으로 취소 되지 않는다.시나리오
- 1. DBA가 STORM에게WITH ADMIN OPTION을 사용하여 CREATE TABLE 시스템권한을 부여 한다.
- 2. STORM이 테이블을 생성 한다.
- 3. STORM이 CREATE TABLE 시스템권한을 SCOTT에게 부여 한다.
- 4. SCOTT가 테이블을 생성 한다.
- 5. DBA가 STORM에게 부여한 CREATE TABLE 시스템권한을 취소 한다.
결과
- – STORM의 테이블은 여전히 존재하지만 새 테이블을 생성할 수 있는 권한은 없다.
- – SCOTT는 여전히 테이블과 새로운 테이블을 생성 할 수 있는 CREATE TABLE권한을 가지고 있다.