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;
참고
'데이터베이스 > SQL 문법' 카테고리의 다른 글
SQL_DML(Data Manipulation Language) (0) | 2022.09.05 |
---|---|
SQL_DDL(Data Definition Language) (0) | 2022.09.01 |