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 |