1. DCL (Data Control Language) 

- 데이터 제어 언어

- 무결성, 보안, 회복, 동시성을 위해 사용자별 데이터베이스 접근 권한 또는 사용 권한을 부여하거나 제거

- COMMIT, ROLLBACK 명령어는 TCL(Transaction Control Language_트랜잭션을 제어하는 명령어)로 구분되어 표현되기도 함.

 

1.1) GRANT

- 데이터베이스 사용자에게 권한을 부여하는 명령어.

- 권한 부여 후 "FLUSH PRIVILEGES;" 명령을 수행하여야 권한이 적용됨.

- 시스템 권한 부여

GRANT 시스템 권한명 [, 시스템 권한명 ...| 롤명 ]
TO  유저명 [, 유저명... | 롤명... | PUBLIC] [WITH ADMIN OPTION];

- 시스템 권한명 : 부여할 시스템권한의 이름
- 롤명 : 권한을 부여할 또는 권한을 받을 롤(ROLE)의 이름
- 유저명 : 권한을 부여 받을 유저(User)이름
- PUBLIC : 시스템권한, 또는 데이터베이스 역할을 모든 사용자에게 부여 가능
- WITH ADMIN OPTION : 권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로 부여 가능

 

- 객체 권한 부여

GRANT [ 객체권한명 ] (컬럼) 
ON [ 객체명 ] 
TO { 유저명 | 롤명 | PUBLIC} [WITH GRANT OPTION];

- 객체권한명 : 객체에 사용가능한 권한(위의 그림 참고)
- 컬럼명 : 만약 ON 절의 object 가 Table이나 View일 경우 사용
- ON 객체명 : Table, View, Sequence, Procedure 등 (위의 테이블을 참고)
- TO { 유저명 | 롤명 | PUBLIC } : 사용자를 일일이 나열할 수도 있고 , ROLE에 소속된 사용자가 될수도 있다. PUBLIC = 모든 사용자
- WITH GRANT OPTION : 이 옵션을 사용하면 TO 절의 대상도 자신이 받은 권한을 다른 유저에게 부여 가능

 

1.2) REVOKE

- 사용자에게 부여한 권한을 회수하는 명령어

REVOKE { 권한명 [, 권한명...] | ALL }
ON 객체명
FROM { 유저명 [, 유저명...] | 롤명(ROLE) | PUBLIC }
[CASCADE CONSTRAINTS]

- 객체 권한의 철회는 그 권한을 부여한 부여자만이 수행 가능
- CASCADE CONSTRAINTS : 이 명령어의 사용으로 참조 객체 권한에서 사용 된 참조 무결성 제한을 같이 삭제 가능
- WITH GRANT OPTION 으로 객체 권한을 부여한 사용자의 객체 권한을 철회하면,
  권한을 부여받은 사용자가 부여한 객체 권한 또한 같이 철회되는 종속철회가 발생

 

1.3) COMMIT

- 작업한 결과물을 물리적 디스크에 저장, 조작 작업이 정상적으로 수행됨을 알려주는 명령어.

- 해당 명령이 수행된 후 이전의 상태로 되돌리 수 없음.

COMMIT;

 

1.4) ROLLBACK 

- 작업한 내용을 원래의 상태로 복구하기위한 명령어.

- COMMIT 명령을 사용하기 이전의 상태로 복구 가능.

ROLLBACK;

 

참고

 

DCL문 - GRANT / REVOKE 명령어

DCL문 이란 데이터베이스에 접근하고 객체들을 사용할 수 있는 권한을 제어할 수 있는 Data Control ...

blog.naver.com

 

 

[DataBase] Oracle SQL - DCL (데이터 제어어) GRANT / REVOKE

데이터 제어어(Data Control Language)는 말 그대로 데이터를 제어하기 위한 언어이다. 이 데이터 제어어에는 권한을 관리하기위한 GRANT / REVOKE 등의 언어가 있다. 권한에는 시스템 권한과 객체 권한이

sehyeok.tistory.com

'데이터베이스 > SQL 문법' 카테고리의 다른 글

SQL_DML(Data Manipulation Language)  (0) 2022.09.05
SQL_DDL(Data Definition Language)  (0) 2022.09.01

+ Recent posts