본문 바로가기
전공/Database

[이론] SQL 제어어(DCL)

by 으녜 2022. 3. 18.
728x90
※ SQL 제어어?

관리자가 데이터의 보안, 무결성 유지, 병행제어, 회복 등을 하기 위해 사용하는 언어로, COMMIT, ROLLBACK, GRANT, REVOKE 등이 있다.

 

1. COMMIT

: 데이터베이스 내의 연산이 성공적으로 종료되어 연산에 의한 수정 내용을 지속적으로 유지하기 위한 명령어

 

 

2. ROLLBACK

: 데이터베이스 내의 연산이 비정상적으로 종료되거나 정상적으로 수행이 되었다 하더라도 수행되기 이전 상태로 되돌리기 위해 연산 내용을 취소할 때 사용하는 명령어

 

예 1 ) [학생] 테이블에서 김길동 학생의 연락처를 '232-0077'로 갱신하시오.

UPDATE 학생 SET 연락처 = '232-0077' WHERE 성명='김길동';

COMMIT;

=> UPDATE 명령 이후 COMMIT을 했으므로, 정상적으로 반영된다.

 

예 2 ) ROLLBACK 명령을 사용해 명령을 취소하시오.

DELETE FROM 학생 WHERE 성명='최길동';

ROLLBACK;

=> [학생] 테이블에서 최길동 학생의 자료를 삭제했지만 ROLLBACK 명령에 의해 취소되어 삭제된 자료가 다시 살아난다.

 

3. GRANT

: 관리자가 사용자에게 데이터베이스에 대한 권한을 부여하기 위한 명령어

 

GRANT 권한 내용 ON 테이블_이름 TO 사용자 [WITH GRANT OPTION];

GRANT 권한 내용(A) ON 테이블_이름(B) TO 사용자(C) 관리자가 사용자 C에게 테이블 B에 대한 권한 A를 부여함
WITH GRANT OPTION 사용자가 관리자로부터 부여받은 권한을 다른 사용자에게 부여할 수 있는 권한 부여권까지 부여하고자 할 때 사용하는 옵션

예 1 ) 관리자가 사용자 OTH에게 [학생] 테이블에 대해 UPDATE 할 수 있는 권한과 그 권한을 필요시 다른 사용자에게 부여할 수 있는 권한을 부여하시오.

GRANT UPDATE ON 학생 TO OTH WITH GRANT OPTION;

 

 

4. REVOKE

: 관리자가 사용자에게 부여했던 권한을 취소하기 위해 사용되는 명령어

REVOKE 권한 내용 ON 테이블_이름 FROM 사용자 [CASCADE];
REVOKE 권한 내용(A) ON 테이블_이름(B) FROM 사용자(C) 관리자가 사용자 C에게 부여했던 테이블 B에 대한 권한 A를 취소함
CASCADE 사용자 C가 다른 사용자에게 권한을 부여했을 경우 그 권한도 연쇄적으로 취소됨.

예 1 ) 사용자 OTH에게 부여했던 [학생] 테이블에 대한 UPDATE 권한을 취소하시오.

REVOKE UPDATE ON 학생 FROM OTH CASCADE;

728x90

'전공 > Database' 카테고리의 다른 글

[이론] 뷰(VIEW)와 시스템 카탈로그  (0) 2022.04.04
[실습] SQL문  (0) 2022.03.29
[이론] SQL 조작어(DML)  (0) 2022.03.15
[이론] SQL 정의어(DDL)  (0) 2022.03.14
[이론] 관계 데이터 연산  (0) 2022.03.13