DCL

haribo·2021년 3월 6일
0

DB

목록 보기
2/3

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

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

GRANT / REVOKE

데이터 베이스 관리자가 데이터베이스 사용자에게 권한을 부여하거나 취소하기 위한 명령어이다.

  • Grant : 권한 부여를 위한 명령어
  • Revoke : 권한 취소를 위한 명령어

<사용자 등급 지정 및 해제>

GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_리스트;

<테이블 및 속성에 대한 권한 부여 및 취소>

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

COMMIT

트랜잭션이 성공적으로 끝나면 데이터베이스가 새로운 일관성(Consistency)상태를 가지기 위해 변경된 모든 내용을 데이터베이스에 반영하여야 하는데, 이때 사용하는 명령이 COMMIT이다. (github의 commit은 여기서 나온걸까?)

COMMIT 명령을 실행하지 않아도 DML문이 성공적으로 완료되면 자동으로 COMMIT되고, DML이 실패하면 자동으로 ROLLBACK이 되도록 Auto Commit기능을 설정할 수 있다.

트랜잭션이 시작되면 DB의 데이터를 주기억장치(RAM)에 올려 처리하다가, commit 명령을 내려줘야 처리된 내용을 보조기억장치(하드디스크)에 저장한다. commit이 되지 않으면 작업 내용을 다 날려먹는 대참사가 발생하므로 Auto Commit 기능을 설정해주는 것이다.

ROLLBACK

아직 COMMIT되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어이다. (완료 안된 내용들을 다 날려버리는.... 세이브를 하지 않고 작업만 하다가 블루스크린이 뜬 상황과 유사해보인다.)

트랜잭션 전체가 성공적으로 끝나지 못하면 일부 변경된 내용만 데이터베이스에 반영되는 비일관성(Inconsistency)인 상태를 가질 수 있기 때문에 일부분만 완료된 트랜잭션은 ROLLBACK 되어야 한다.

profile
그림 그리는 백엔드 개발자

0개의 댓글