SQL - DCL(Data Control Language)
DCL
- Data Control Language
- 데이터 제어 언어
- 계정에 시스템 권한 또는 객체 접근 권한 부여(GRANT)하거나 회수(REVOKE)하는 언어
시스템 권한 종류
- CREATE SESSEION : 데이터 베이스 접속 권한
- CREATE TABLE : 테이블 생성 가능 권한
- CREATE VIEW : 뷰 생성 가능 권한
- CREATE SEQUENCE : 시퀀스 생성 가능 권한
- CREATE PROCEDURE :
- CREATE USER : 계정 생성 가능 권한 …
- DROP… …
접근 권한 부여(GRANT), 회수(REVOKE) 사용법
-- GRANT 권한1, 권한2, ..., TO 사용자계정명;
-- ROVOKE 권한1, 권한2, ..., TO 사용자계정명;
-- 계정 생성 예
CREATE USER SAMPLE IDENTIFIED BY SAMPLE;
-- 1. 계정 생성
CREATE USER SAMPLE IDENTIFIED BY SAMPLE;
-- 2. 계정에 접속을 위한 CREATE SESSION 권한 부여
GRANT CREATE SESSION TO SAMPLE;
-- 3. TABLE 생성 권한 부여
GRANT CREATE TABLE TO SAMPLE;
-- 4. 테이블 스페이스 할당: 테이블, 뷰, 인덱스 등 객체가 저장되는 공간
ALTER USER SAMPLE QUOTA 2M ON SYSTEM;
객체 권한
- 특정 객체를 조작할 수 있는 권한
권한 종류 | 설정 객체 |
---|---|
SELECT | TABLE, VIEW, SEQUENCE |
INSERT | TABLE, VIEW |
UPDATE | TABLE, VIEW |
DELETE | TABLE, VIEW |
ALTER | TABLE, SEQUENCE |
GRANT 권한 종류 ON 특정 객체 TO 사용자계정;
-- KH 계정이 갖고 있는 EMPLOYEE 테이블을 조회할 수 있는 권한 부여 예
GRANT SELECT ON KH.EMPLOYEE TO SAMPLE;
-- 5. KH.EMPLOYEE 테이블을 조회할 수 있는 권한 부여
GRANT SELECT ON KH.EMPLOYEE TO SAMPLE;
-- 6. KH.DEPARTMENT 테이블을 조회할 수 있는 권한 부여
GRANT SELECT ON KH.DEPARTMENT TO SAMPLE;
-- 7. KH.DEPARTMENT 테이블에 데이터를 삽입할 수 있는 권한 부여
GRANT INSERT ON KH.DEPARTMENT TO SAMPLE;
-- 8. KH.DEPARTMENT 테이블에 데이터를 삽입할 수 있는 권한 회수
REVOKE INSERT ON KH.DEPARTMENT FROM SAMPLE;
-- 9. 모든 테이블에 대한 조회 권한 설정
GRANT SELECT ANY TABLE TO SAMPLE;
-- 10. 모든 테이블에 대한 조회 권한 회수
REVOKE SELECT ANY TABLE FROM SAMPLE;
실습 때는 SAMPLE이라는 계정을 만들어서 진행했다.
위 이미지는 SAMPLE 계정에 KH.EMPLOYEE을 조회할 수 있는 권한을 부여한 것이다.
권한이 잘 부여되었고, 조회도 가능하게 되었다.
나머지 권한 설정들도 하나씩 부여하고 확인해보는 실습! 이미지는 생략.