DCL(DATA CONTROL LANGUAGE)
: 데이터 제어 언어로써 계정에게 시스템 권한 또는 객체 접근 권한을 부여(GRANT)하거나 회수(REVOKE)한다.
(1) GRANT(권한 부여)
① 시스템 권한: 특정 DB에 접근하는 권한이며, 객체들을 생성할 수 있는 권한이다.
ⓐ GRANT 권한1, 권한2, ... TO 계정명;
ⓑ 종류
- CREATE SESSION: 계정에 접속할 수 있는 권한
GRANT CREATE SESSION TO SAMPLE;
- CREATE TABLE: 테이블을 생성할 수 있는 권한
GRANT CREATE TABLE TO SAMPLE;
- CREATE VIEW: 뷰를 생성할 수 있는 권한
GRANT CREATE VIEW TO SAMPLE;
- CREATE SEQUENCE: 시퀀스를 생성할 수 있는 권한
CREATE SEQUENCE TO SAMPLE;
- CREATE USER: 계정을 생성할 수 있는 권한
CREATE USER SAMPLE IDENTIFIED BY SAMPLE;
② 객체 접근 권한: 특정 객체들에 접근하여 조작할 수 있는 권한이다.
ⓐ 조작: SELECT, INSERT, UPDATE, DELETE = DML
ⓑ GRANT 권한 ON 특정객체 TO 계정명;
ⓒ 권한의 종류와 특정 객체
권한의 종류 | 특정 객체 |
SELECT | TABLE, VIEW, SEQUENCE |
INSERT | TABLE, VIEW |
UPDATE | TABLE, VIEW |
DELETE | TABLE, VIEW |
- SAMPLE 계정에 YJ의 EMPLOYEE 테이블을 조회할 수 있는 권한을 부여하기
GRANT SELECT ON YJ.EMPLOYEE TO SAMPLE;
- SAMPLE 계정에 YJ의 DEPARTMENT 테이블에 행을 삽입할 수 있는 권한을 부여하기
GRANT INSERT ON YJ.DEPARTMENT TO SAMPLE;
- SAMPLE 계정에 최소한의 권한만 부여하기
GRANT CONNECT, RESOURCE TO SAMPLE;
** ROLE: 특정 권한들을 하나의 집합으로 모아놓은 것
- CONNECT: CREATE SESSION(데이터베이스 접속 권한)
- RESOURCE: CREATE TABLE, CREATE SEQUENCE, SELECT, INSERT, ...(특정 객체들을 생성 및 조작할 수 있는 권한)
(2) REVOKE(권한 회수)
: 권한을 회수할 때 사용하는 명령어
- REVOKE 권한1, 권한2, ... FROM 계정명;
REVOKE CREATE TABLE FROM SAMPLE;