본문 바로가기

Programming/DataBase

SQL - DCL

DCL의 개념 

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


- 데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용한다


- DCL의 유형

COMMIT : DB 조작 작업을 영구적으로 반영하여 완료

ROLLBACK : DB 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구한다.

GRANT : DB 사용자에게 사용 권한을 부여

REVOKE : DB 사용자의 사용 권한을 취소


COMMIT

- 트랜잭션이 성공적으로 끝나면 DB가 새로운 일관성(Consis-tency)상태를 가지기 위해 수행된 모든 변경을 DB에 반영하여 완료하여야한다.


ROLLBACK

- 트랜잭션의 일부를 성공적으로 끝내지 못하면 DB가 비일관성(Inconsistency)인 상태를 가질 수 있기 때문에(즉, 트랜잭션이 수행한 일부 변경이 DB에 반영될 가능성이 있기 때문에) 일부분만 완료된 트랜잭션은 롤백되어야 한다.


GRANT / REVOKE

ex) GRANT 사용자등급 TO 사용자_ID,사용자_ID2.... [IDENTIFIED BY 암호];

REVOKE 사용자등급 FROM 사용자_ID,사용자_ID2,...;


* 사용자 등급

DBA: 데이터베이스 관리자

RESOURCE : 데이터 베이스 / 테이블 생성 가능자

CONNECT : 단순 사용자


- 권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등

- WITH GRANT OPTION : 부여반은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여한다.

- GRANT OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소한다.

- CASCADE : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소한다.


GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];


ex) 사용자 ID가  'NABI'인 사람에게 <고객> 테이블에 대한 모든 권한과 다른 사람에게 권한을 부여할 수 있는 권한까지 부여하는 SQL문은?


GRANT ALL ON 고객 TO NABI WITH GRANT OPTION;


REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE]


ex) 사용자 ID가 'STAR'인 사람에게 부여한 <고객>테이블에 대한 권한 중 UPDATE 권한을 다른 사람에게 부여할 수 있는 권한만 취소하는 SQL문은?


REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM STAR;

'Programming > DataBase' 카테고리의 다른 글

[DataBase] 스토어드 프로시저 (Stored Procedure)  (0) 2013.06.28
내장 SQL  (0) 2013.06.26
SQL - DML  (0) 2013.06.26
SQL - JOIN  (0) 2013.06.26
sql - select 문  (0) 2013.06.26