본문 바로가기

DB/JPA

SQL 기본 문법 정리 2 - DCL, TCL

DCL(Data Control Language, 데이터 제어 언어)

데이터를 관리하고 접근하는 권한을 다루는 언어

일부에서는 DCL 에서 트랜잭션을 제어하는 명령인 COMMIT 과 ROLLBACK 만을 따로 분리해서

TCL (Transaction Control Language) 라고 표현하기도 한다.

  • Commit : DML에 의해 조작된(추가, 수정, 삭제) 내용을 확정 처리
  • Rollback : 데이터를 Commit 하기전에 조작된(추가, 수정, 삭제) 내용을 원상복구
  • Grant : 데이터베이스 사용자에게 사용 권한 부여
  • Revoke : 데이터베이스 사용자의 사용 권한 회수

트랜잭션이란?

데이터베이스의 논리적 연산단위, 분할할 수 없는 최소의 단위, 말 그대로 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻이다.

데이터베이스의 상태를 변화시킨다는 것은 간단히 말해서 질의어(SQL문으로 INSERT, SELECT...)를 이용해 데이터 베이스에 접근하는 것을 의미한다.

 

트랜잭션 특성은 크게 4가지로 구분된다.

 

  • 원자성 (Atomicity) - 트랜잭션이 데이터베이스에 모두 반영되거나, 아니면 반영되지않아야 한다는 것
  • 일관성 (Consistency) - 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야한다.
  • 독립성 (Isolation) - 어떤 트랜잭션도 다른 트랜잭션의 연산에 끼어들 수 없다.
  • 지속성 (Durability) - 트랜잭션이 성공적으로 완료되었다면, 결과는 영구적으로 반영되어야 한다.

 

COMMIT

올바르게 반영된 데이터를 데이터 베이스에 반영시키는 것으로

INSERT, SELECT, UPDATE, DELETE를 사용한 후 변경 작업이 완료되었음을 데이터베이스에 알려 주기 위해 사용

 

ROLLBACK

트랜잭션 시작 이전의 상태로 되돌리는 것

 

GRANT

데이터베이스 사용자에게 권한 부여

CONNECT : 데이터베이스에 접속할 수 있는 기본권한 제공 한다.

RESOURCE : 기본적인 객체(테이블, 인덱스, 뷰, 클러스트 등) 생성, 변경, 삭제할수 있는 권한 제공 한다

/* GRANT 옵션 TO 사용자명; */
GRANT CONNECT, RESOURCE TO root;

 

 

REVOKE

사용자에 대한 권한 회수

/* REVOKE 옵션 ON 소유자명.테이블명  FROM 사용자; */
REVOKE CONNECT, RESOURCE FROM root;

 

참고

https://nov6th.tistory.com/22?category=731662

'DB > JPA' 카테고리의 다른 글

N+1 문제 및 해결법  (0) 2022.08.11
JPA 개념  (0) 2022.02.24