DCL(데이터 제어어)는 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어
데이터베이스 관리자가 사용자에게 권한 부여 혹은 취소하기 위한 명령어
GRANT
REVOKE
사용자 등급 지정 및 해제 표기법
GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_리스트
// 사용자 ID가 '테스트' 인 사람에게 데이터베이스 및 테이블 생성 권한 부여 SQL
GRANT RESOURCE TO 테스트
// 사용자 ID가 '인간' 인 사람에게는 단순 정보 검색할 수 있는 권한 부여 SQL
GRANT CONNECT TO 인간
테이블 및 속성에 대한 권한 부여 및 취소
GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];
ALL
, SELECT
, INSERT
, DELETE
, UPDATE
, ALTER
등WITH GRANT OPTION
: 부여받은 권한을 다른 사용자에게 다시 부여GRANT FOR OPTION
: 다른 사용자에게 권한을 부여하는 권한 취소CASCADE
: 권한을 부여받았던 사용자가 타 사용자에게 부여한 권한도 연쇄적으로 취소트랜잭션이 성공적으로 끝난 후 변경된 내용을 데이터베이스에 반영
COMMIT 되지 않은 변경된 내용을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령
트랜잭션 내에 ROLLBACK 할 위치인 저장점을 저장
저장점을 지정할 때는 이름을 부여하며, 롤백 시 지정된 저장점까지의 트랜잭션 처리 내용이 취소된다.
표기법
SAVEPOINT 사용할 세이브포인트 명칭
ROLLBACK TO 돌아갈 세이브포인트 명칭
INSERT INTO TAB1 VALUES(1); /*COL1 : 1 */
INSERT INTO TAB1 VALUES(2); /*COL1 : 1,2 */
SAVEPOINT SV1; /*COL1 : 1,2 */
UPDATE TAB1 SET COL1=4 WHERE CO1=2; /*COL1 : 1,4 */
SAVEPOINT SV1; /*COL1 : 1,4 */
DELETE TAB1 WHERE COL1>=2; /*COL1 : 1 */
ROLLBACK TO SV1; /*COL1 : 1,2 맨 처음 지정한 SV1으로 ROLLBACK*/
INSERT INTO TAB1 VALUES(3); /*COL1 : 1,3 */
SELECT MAX(COL1) FROM TAB1; /*MAX(COL1) : 3 */