본문 바로가기
Self Study/SQLD

[SQLD] DCL(데이터 제어어 : Data Control Language) 과 TCL(트랜젝션 제어어 : Transaction Control Language)

by Lynnet 2022. 11. 1.
728x90

 DCL(데이터 제어어 : Data Control Language) 란? 

- 데이터베이스에 권한을 부여하는 언어 

* 데이터베이스 테이블에 직접적인 영향을 미치기 때문에 DCL 을 입력하는 순간 명령어에 해당하는 작업이 즉시 (AUTO COMMIT)된다. 

 

종류 설명
GRANT 데이터베이스에 대한 사용자의 액세스(접근)권한을 제공
(특정 사용자만 특정작업을 할 수 있도록 지정 가능)
REVOKE GRANT명령으로 주어진 접근 권한을 철회

<예시>

GRANT 

GRANT 권한 종류 ON 대상 TO 계정명 IDENTIFIED BY 암호 [WITH GRANT OPTION];

 

-- 모든 권한을 가진 계정 생성

GRANT ALL ON *.* to root2 IDENTIFIED by 1234; 

--특정 데이터베이스에 조회권한을 가진 계정 생성

GRANT SELECT ON test.*(권한 종류) TO root3 IDENTIFIED BY 12345; 

-- GRANT로 계정생성 후 아래의 명령어를 실행해야 적용된다. 

FLUSH privileges;

 

REVOKE

-- 권한 해제 명령어

REVOKE insert, update, create ON [DB명.테이블명] TO [계정명];

--전체 권한 해제 명렁어

REVOKE ALL ON [DB명.테이블명] TO [계정명];


 

TCL(트랜젝션 제어어 : Transaction Control Language)란? 

- 데이터의 보안, 무결성, 회복, 병행, 수행제어 등을 정의하는데 사용 

 

종류  설명
COMMIT 트랜젝션의 작업 결과를 저장 및 반영
ROLLBACK 마지막 COMMIT된 시점의 상태로 복원
SAVEPOINT 저장점(SAVEPOINT)를 지정하면 롤백할때 트랜젝션이 포함된 전제 작업을 롤백하는 것이 아닌 현 시점에서 저장점까지의 일부 트랜젝션만 롤백
SET 
TRANSACTION
TRANSACTION 지정

 

728x90
반응형