SQLD 시험 대비

SQLD DCL

_김영인 2026. 3. 7. 11:48

1. DCL이란 무엇인가

DCL (Data Control Language)은 데이터베이스의 사용자와 권한을 관리하는 SQL 명령어이다.

데이터 자체를 다루는 것이 아니라 누가 데이터에 접근할 수 있는지 제어하는 역할을 한다.

 

주요 기능:

  • 사용자 생성
  • 사용자 삭제
  • 사용자 권한 부여
  • 사용자 권한 회수

대표적인 명령어:

  • GRANT
  • REVOKE

 

2. USER 관련 명령어

 

데이터베이스에서 데이터를 사용하려면 사용자 계정 (USER) 이 필요하다.

 

USER 관련 명령어는 다음과 같다.

  • USER 생성
  • USER 변경
  • USER 삭제

 

3. USER 생성 (CREATE USER)

 

새로운 사용자 계정을 생성한다.

CREATE USER 사용자명 IDENTIFIED BY 비밀번호;

 

예시

CREATE USER user1 IDENTIFIED BY password1;

 

설명: user1이라는 사용자 계정을 생성하고 password1을 비밀번호로 설정

 

주의사항:

  • 이미 동일한 이름의 사용자가 존재하면 오류 발생
  • 비밀번호는 반드시 지정해야 한다

 

4. USER 변경 (ALTER USER)

 

기존 사용자의 정보를 변경한다.

대표적으로 비밀번호 변경에 사용된다.

ALTER USER 사용자명 IDENTIFIED BY 새로운비밀번호;

 

예시

ALTER USER user1 IDENTIFIED BY newpass;

 

설명: user1의 비밀번호를 newpass로 변경


 

5. USER 삭제 (DROP USER)

 

사용자 계정을 삭제한다.

DROP USER 사용자명;

 

예시

DROP USER user1;

 

6. 권한 관련 명령어

 

데이터베이스에서 사용자가 특정 작업을 하려면 권한 (Permission) 이 필요하다.

 

예를 들어:

  • 테이블 생성
  • 데이터 조회
  • 데이터 수정

이러한 권한을 관리하는 명령어가 GRANT / REVOKE 이다.


 

7. GRANT (권한 부여)

 

사용자에게 특정 권한을 부여한다.

기본 구조

GRANT 권한
ON 테이블
TO 사용자
[WITH GRANT OPTION];

예시

GRANT SELECT ON MEMBER TO user1;

 

설명: user1에게 MEMBER 테이블 조회 권한 부여

WITH GRANT OPTION

이 옵션을 사용하면 권한을 받은 사용자가 다른 사용자에게 권한을 다시 부여할 수 있다.

GRANT SELECT ON MEMBER TO user1 WITH GRANT OPTION;

 

8. 시스템 권한 부여

 

테이블이 아니라 데이터베이스 자체 기능 권한을 줄 수도 있다.

GRANT CREATE TABLE TO user1;

 

설명: user1에게 테이블 생성 권한 부여


 

9. REVOKE (권한 회수)

 

사용자에게 부여된 권한을 회수한다.

기본 구조

REVOKE 권한
ON 테이블
FROM 사용자
[RESTRICT | CASCADE];

예시

REVOKE SELECT ON MEMBER FROM user1;

 

설명: user1의 MEMBER 테이블 조회 권한 제거

RESTRICT

권한을 받은 사용자가 다른 사용자에게 권한을 부여한 경우 회수할 수 없다.

CASCADE

권한이 연결된 사용자들의 권한까지 모두 회수한다.


 

10. ROLE (권한 그룹)

 

권한을 하나씩 부여하면 관리가 어렵기 때문에 ROLE이라는 권한 그룹을 사용한다.

ROLE은 여러 권한을 묶어놓은 권한 패키지이다.

 

ROLE 생성

CREATE ROLE role_name;

 

예시

CREATE ROLE mgr;

 

ROLE에 권한 부여

GRANT CREATE SESSION, CREATE TABLE TO mgr;

 

설명: mgr 역할에 로그인 및 테이블 생성 권한 부여

 

ROLE을 사용자에게 부여

GRANT mgr TO user1;

 

설명: user1에게 mgr 권한 그룹 부여


 

11. 권한 종류

권한 설명
CREATE USER 사용자 생성
ALTER USER 사용자 수정
DROP USER 사용자 삭제
CREATE SESSION DB 접속
CREATE TABLE 테이블 생성

 

12. SQLD 시험 핵심 포인트

 

DCL 명령어

  • GRANT / REVOKE

WITH GRANT OPTION

  • 권한을 받은 사용자가 다른 사용자에게 권한 재부여 가능

REVOKE 옵션

  • RESTRICT → 연결된 권한이 있으면 회수 불가
  • CASCADE → 연결된 모든 권한 함께 회수

ROLE 개념

  • 여러 권한을 묶어 관리

 

정리

 

DCL은 데이터베이스 사용자와 권한을 관리하는 SQL 명령어이다.

명령어 역할
GRANT 권한 부여
REVOKE 권한 회수
ROLE 권한 그룹 관리

권한 관리 효율성을 위해 ROLE 개념을 활용하면 여러 사용자에게 일괄적으로 권한을 부여하고 회수할 수 있다.

'SQLD 시험 대비' 카테고리의 다른 글

SQLD DDL  (0) 2026.03.06
SQLD DML / TCL  (0) 2026.03.05
SQLD 함정 문제 TOP 20  (0) 2026.03.05
SQLD 정규표현식  (0) 2026.03.04
SQLD PIVOT / UNPIVOT  (0) 2026.03.03