Database/SQL

[SQL] #11 SQL DCL과 TCL 완전 정리, 권한 관리와 트랜잭션 제어 쉽게 이해하기

TOASTDEV 2025. 8. 2. 16:00
반응형

 

안녕하세요 토스트데브입니다 😊
SQL에는 데이터를 저장하고 구조를 정의하는 명령어 외에도, 접근 권한을 제어하고 데이터 처리의 신뢰성을 유지하는 명령어들이 존재합니다.
오늘은 그중에서 DCL(Data Control Language)과 TCL(Transaction Control Language)에 대해 알아보겠습니다!

 

 

🛡️ DCL: 데이터 제어어 (Data Control Language)

✅ DCL이란?

DCL(Data Control Language)은 데이터베이스 사용자에게 권한을 부여하거나 회수하는 명령어입니다.

👉 누가 어떤 데이터에 접근하고 조작할 수 있는지를 통제하는 기능이에요.

 

 

🔐 주요 DCL 명령어

1️⃣ GRANT – 권한 부여

GRANT SELECT, INSERT ON users TO 'guest';

➡️ guest 사용자에게 users 테이블에 대한 SELECT와 INSERT 권한을 부여합니다.

 

2️⃣ REVOKE – 권한 회수

REVOKE INSERT ON users FROM 'guest';

➡️ guest 사용자의 users 테이블에 대한 INSERT 권한을 회수합니다.

 

📌 DCL 사용 시 주의사항

  • 권한 설정은 DB 보안의 핵심입니다.
  • 사용자의 역할(Role)에 따라 세분화된 권한 설정이 가능합니다.
  • 대부분의 DBMS에서는 관리자 권한 또는 SUPER 권한이 있어야 사용 가능합니다.

 

 

💾 TCL: 트랜잭션 제어어 (Transaction Control Language)

✅ TCL이란?

TCL(Transaction Control Language)은 여러 SQL 문장을 하나의 논리적인 작업 단위(트랜잭션)로 묶어
실패 시 전체를 취소하거나, 성공 시 전체를 저장할 수 있도록 제어하는 명령어입니다.

👉 데이터 처리의 신뢰성과 일관성을 보장하는 핵심 기능이에요!

 

🔁 트랜잭션이란?

하나의 트랜잭션은 다음 4가지 특성을 가집니다.
ACID 원칙이라 불립니다.

항목 설명
A: Atomicity 원자성 – 전부 성공 or 전부 실패
C: Consistency 일관성 – 작업 전후 상태가 정합성 유지
I: Isolation 독립성 – 동시에 실행되는 트랜잭션 간 간섭 금지
D: Durability 지속성 – COMMIT 이후에는 영구 반영

 

 

🔄 주요 TCL 명령어

1️⃣ BEGIN 또는 START TRANSACTION – 트랜잭션 시작

START TRANSACTION;

 

2️⃣ COMMIT – 변경 사항 저장

COMMIT;

➡️ 지금까지 실행된 모든 작업을 데이터베이스에 영구 반영합니다.

 

3️⃣ ROLLBACK – 변경 사항 취소

ROLLBACK;

➡️ 오류 발생 시 이전 상태로 되돌립니다.

 

4️⃣ SAVEPOINT – 중간 저장점 설정

SAVEPOINT sp1;

➡️ 특정 시점까지 롤백 가능하게 설정

 

5️⃣ ROLLBACK TO SAVEPOINT – 저장점으로 롤백

ROLLBACK TO sp1;

➡️ 지정된 저장점까지만 되돌립니다.

 

 

📝 마무리

  • DCL은 누가 데이터에 접근할 수 있는지를 관리하고,
  • TCL은 데이터의 처리 결과를 안전하게 저장하거나 취소합니다.

이 두 가지는 데이터베이스의 보안성과 신뢰성을 책임지는 중요한 기능이므로, 실무에서도 자주 사용됩니다.
특히 트랜잭션 처리는 은행 시스템, 쇼핑몰 주문 처리 등 데이터의 정확성이 중요한 곳에서 반드시 필요하죠!

 

 

#SQL #SQL기초 #DCL #TCL #트랜잭션 #COMMIT #ROLLBACK #GRANT #REVOKE #데이터제어어 #트랜잭션제어어 #DBMS #SQL보안 #SQL강의

반응형