정보처리기사

[정보처리기사 필기] SQL 응용 - 081. DCL 데이터 제어어

Sury 2025. 1. 14. 11:33

1. DCL의 개요

  • 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는데 사용하는 언어
  • 데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용
  • GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT 등

2. GRANT / REVOKE

GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_리스트;
  • 데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하거나 취소하기 위한 명령어
  • 사용자등급 지정 및 해제
    • GRANT : 권한 부여를 위한 명령어
    • REVOKE : 권한 취소를 위한 명령어
<테이블 및 속성에 대한 권한 부여 및 취소>

GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];

- 권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등
- WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여
- GRANT OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소
- CASCADE : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소

3. COMMIT

  • 트랜잭션이 성공적으로 끝난 후 데이터베이스가 새로운 일관성 상태를 가지기 위해 변경된 모든 내용을 데이터베이스에 반영할 수 있도록 사용하는 명령어
  • Auto Commit 기능 설정 : COMMIT 명령을 실행하지 않아도 DML문이 성공적으로 완료되면 자동으로 COMMIT되고, DML이 실패하면 자동으로 ROLLBACK이 되도록하는 기능
  • 트랜잭션 Transaction
    • 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합으로서 작업의 단위가 됨
    • 데이터베이스 관리 시스템에서 회복 및 병행 제어시에 처리되는 작업의 논리적 단위
    • 하나의 트랜잭션은 COMMIT 되거나 ROLLBACK 되어야 함

4. ROLLBACK

  • 아직 COMMIT되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어
  • 트랜잭션 전체가 성공적으로 끝나지 못하면 일부분만 완료된 트랜잭션은 롤백되어야 함 : 일부 변경된 내용만 데이터베이스에 반영되는 비일관성인 상태를 가질 수 있기 때문

5. SAVEPOINT

  • 트랜잭션 내에 ROLLBACK할 위치인 저장점을 지정하는 명령어
  • 저장점을 지정할 때는 이름을 부여, ROLLBACK 시 지정된 저장점까지의 트랜잭션 처리 내용이 취소됨