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

2025. 8. 2. 16:00·Database/SQL
반응형

 

안녕하세요 토스트데브입니다 😊
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강의

반응형
저작자표시 비영리 (새창열림)

'Database > SQL' 카테고리의 다른 글

[SQL 실전] #01 SQL JOIN 실전 가이드, 다중 조인부터 SELF JOIN까지  (1) 2025.08.03
[SQL] #10 SQL 데이터 정의어(DDL) 완전 정리, CREATE부터 DROP까지  (1) 2025.08.01
[SQL] #09 뷰(View)와 인덱스(Index) 완벽 이해! 속도와 재 사용을 동시에 잡자!  (2) 2025.07.31
[SQL] #08 SQL 서브쿼리 완전 정리, 중첩 쿼리의 개념과 예제까지  (1) 2025.07.30
[SQL] #07 SQL JOIN 완전 정복! INNER부터 LEFT, RIGHT까지 한눈에  (1) 2025.07.29
'Database/SQL' 카테고리의 다른 글
  • [SQL 실전] #01 SQL JOIN 실전 가이드, 다중 조인부터 SELF JOIN까지
  • [SQL] #10 SQL 데이터 정의어(DDL) 완전 정리, CREATE부터 DROP까지
  • [SQL] #09 뷰(View)와 인덱스(Index) 완벽 이해! 속도와 재 사용을 동시에 잡자!
  • [SQL] #08 SQL 서브쿼리 완전 정리, 중첩 쿼리의 개념과 예제까지
TOASTDEV
TOASTDEV
인스턴트 코딩 #토스트데브 #토스트뎁 #코딩공부 #개발입문
  • TOASTDEV
    토스트뎁
    TOASTDEV
    • 분류 전체보기 (64) N
      • 알쓸신잡 (20)
        • 코딩에 대하여 (13)
        • 컴퓨터에 대하여 (5)
        • IT 국내외 소식 (2)
      • Web Front (6)
        • HTML (6)
        • CSS (0)
        • JavaScript (0)
      • Programming (15)
        • PHP (15)
      • Database (12) N
        • SQL (12) N
        • MySQL (0)
      • Server (11)
        • Linux (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Youtube Toastdev
    • Naver Blog
  • 공지사항

    • [유튜브] 유튜브 영상 업로드 안내
  • 인기 글

  • 태그

    웹개발
    ubuntuserver
    php문법
    ict
    웹개발기초
    리눅스서버
    sql
    SQL강의
    php코딩
    코딩입문
    php입문
    데이터베이스
    서버관리
    html기초
    SQL기초
    리눅스기초
    데이터분석
    HTML
    php기초
    dbms
    php
    ubuntu서버
    웹개발입문
    코딩기초
    SQL문법
    웹프로그래밍
    서버입문
    우분투서버
    코딩공부
    프론트엔드
  • 최근 댓글

  • 최근 글

  • 전체
    오늘
    어제
  • 반응형
  • hELLO· Designed By정상우.v4.10.3
TOASTDEV
[SQL] #11 SQL DCL과 TCL 완전 정리, 권한 관리와 트랜잭션 제어 쉽게 이해하기
상단으로

티스토리툴바