◆ DCL (Data Control Language)
데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용한다.
데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용한다.
DCL은 4가지의 유형이 있다.
COMMIT : DB 조작 작업을 반영하여 완료한다.
ROLLBACK : 조작 작업이 비정상적으로 종료되었을 때 원래 상태로 복구시킨다.
GRANT : 사용자에게 사용 권한을 부여한다.
REVOKE : 사용자의 사용 권한을 취소한다.
- COMMIT (완료)
모든 변경 내용들을 DB에 반영하는 명령어이다.
- ROLLBACK
변경된 모든 내용들을 취소하고 DB를 이전 상태로 되돌린다.
- GRANT / REVOKE
GRANT : 권한 부여를 위한 명령어
REVOKE : 권한 취소를 위한 명령어
1 2 | GRANT 사용자등급 TO 사용자; REVOKE 사용자등급 FROM 사용자; | cs |
GRANT / TO
REVOKE FROM
만 외워두면 된다.
예제 1) 사용자 ID가 BINO인 사람에게 데이터베이스 및 테이블을 생성할 수 있는 권한을 부여하는 SQL문을 작성하시오.
1 2 3 4 5 6 7 8 9 | GRANT RESOURCE TO BINO; /* DBA : 데이터베이스 관리자 RESOURCE : 데이터베이스 및 테이블 생성 가능자 CONNECT : 단순 사용자 */ | cs |
예제 1) 사용자 ID가 STAR인 사람에게 단순히 데이터베이스에 있는 정보를 검색할 수 있는 권한을 부여하는 SQL문을 작성하시오.
1 | GRANT CONNECT TO STAR; | cs |
- 테이블 및 속성에 대한 권한 부여 및 취소
권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등
WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게도 부여할 수 있는 권한
GRANT OPTION FOR : WITH GRANT OPTION권한을 취소한다.
CASCADE : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한마저 뺏어간다.
표기 방식
1 2 3 | - GRANT 권한 ON 개체 TO 사용자 (WITH GRANT OPTION); - REVOKE [GRANT OPTION FOR] 권한 ON 개체 FROM 사용자 [CASCADE]; | cs |
예제 1) 사용자 ID가 BINO인 사람에게 <국가>테이블에 대한 모든 권한과 다른 사람에게 권한을 부여할 수 있는 권한까지 부여하는 SQL문을 작성하시오.
1 | GRANT ALL ON 국가 TO BINO WITH GRANT OPTION; | cs |
예제 1) 사용자 ID가 BINO인 부여한 <국가>테이블에 대한 권한 중 UPDATE 권한을 다른 사람에게 부여할 수 있는 권한만 취소하는 SQL문을 작성하시오.
1 | REVOKE GRANT OPTION FOR UPDATE ON 국가 FROM BINO; | cs |