DCL(Data Control Language, 데이터 제어어)은 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술하는 언어다. GRANT(권한 부여)와 REVOKE(권한 회수·취소) 명령으로 구성되어, 사용자의 데이터 접근 권한을 통제한다.
DCL의 기능 범위를 정확히 아는 것이 출제의 핵심이다. DCL은 권한 부여와 회수를 통해 보안, 무결성, 병행성(병행 제어)을 보장하고 트랜잭션 관리(롤백 등)와도 연결된다. 반면 스키마·구조 정의는 CREATE, ALTER 같은 DDL의 고유 기능이므로 DCL의 기능이 아니다. 'DCL의 기능으로 옳지 않은 것은?' 문제에서 '데이터베이스의 구조를 정의한다'는 보기가 나오면 그것이 정답이다.
DCL을 둘러싼 분류 문제도 자주 나온다. SQL 명령 중 나머지 셋과 성격이 다른 것을 고를 때, SELECT·UPDATE·INSERT가 DML인 사이에 GRANT가 있으면 권한 부여 명령인 DCL에 속하므로 GRANT를 고른다. REVOKE 역시 데이터의 사용 권한을 관리하는 DCL 문이다.
예제
'데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술하는 언어는?'처럼 정의를 묻는 문제가 기본형이다. '데이터 제어어(DCL)의 기능으로 옳지 않은 것은?'에서는 구조 정의가 DCL이 아니라 DDL의 기능임을 묻고, 보안·무결성·병행성은 DCL이 보장하는 항목으로 나온다. 부여했던 권한을 거두는 명령은 REVOKE다.
대표 기출 3문항
데이터 제어 언어(DCL)의 기능으로 볼 수 있는 것은?
데이터 정의 및 변경
데이터 검색
데이터 복구 및 병행제어
데이터 사용자와 DBMS 간의 인터페이스 제공
정답과 해설 보기
정답 ③ · 데이터 제어 언어(DCL)의 기능을 묻는 문제이다. DCL은 GRANT, REVOKE 같은 보안과 권한 부여 및 회수 기능과 COMMIT, ROLLBACK 같은 트랜잭션 제어 기능을 담당하므로 데이터 복구와 병행 제어가 DCL의 기능에 해당한다.
DCL은 데이터 제어 언어로, 권한 부여와 롤백 등 데이터 접근 제어 및 트랜잭션 관리를 담당하는 언어이다.
데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술하는 언어는?
DDL(data definition language)
DML(data manipulation language)
DCL(data control language)
DUL(data user language)
정답과 해설 보기
정답 ③ · 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술하는 언어를 고르는 문제이다. SQL은 기능에 따라 DDL, DML, DCL로 구분되는데, DCL은 GRANT와 REVOKE 등을 통해 데이터에 대한 접근 권한을 부여하고 취소하는 제어 기능을 담당한다.
데이터베이스의 접근 권한과 제어를 담당하는 언어는 DCL(Data Control Language)이다.
SQL의 명령은 사용 용도에 따라 DDL, DML, DCL로 구분할 수 있다. 다음 명령 중 그 성격이 나머지 셋과 다른 것은?
SELECT
UPDATE
INSERT
GRANT
정답과 해설 보기
정답 ④ · SQL 명령어 중 나머지와 분류가 다른 것을 찾는 문제이다. SELECT, UPDATE, INSERT는 모두 데이터를 조회하거나 변경하는 데이터 조작어인 DML에 속한다.
DDL, DML, DCL 분류에서 데이터 조작은 DML, 권한 부여는 DCL이므로 GRANT가 유일하게 성격이 다르다.