DCL(Data Control Language)
데이터의 보완, 무결성, 데이터 회복, 병행수행, 제어 등 정의하는데 사용하는 언어이다.
COMMIT과 ROLLBACK 명령어는 TCL(Transaction Control Language)이라고 하여 트랜잭션을 제어하는 명령어라고 구분되어 표현되기도 한다.
- Commit : DML(데이터조작어)에 의해 조작된(수정/추가/삭제) 내용을 확정 처리 한다.
- Rollback : 데이터를 Commit 하기전에 조작된(수정/추가/삭제) 내용을 원상복구 처리 한다.
- Grant : 데이터베이스 사용자에게 사용 권한 부여 한다.
-- 사용자 권한 부여 명령어
GRANT 권한종류 ON 대상 TO 계정명 IDENTIFIED BY 암호 [WITH GRANT OPTION];
예제)
-- 모든 권한을 가진 계정 생성
GRANT ALL ON *.* TO test@localhost IDENTIFIED BY "test1";
-- 특정 데이터베이스에 조회권한을 가진 계정 생성
GRANT SELECT ON test.* TO test@localhost IDENTIFIED BY "test1";
-- GRANT로 계정생성 후 아래의 명령어를 실행해야 적용됩니다.
FLUSH privileges;
- Revoke : 데이터베이스 사용자의 권한을 회수한다.
-- 권한 해제 명령어
REVOKE insert, update, create ON [DB명.테이블명] TO [user@host];
-- 전체 권한 해제 명령어
REVOKE ALL ON [DB명.테이블명] TO [user@host];
- DENY: DENY 문은 특정 사용자가 데이터베이스 객체에 대한 권한을 갖지 못하도록 막는 데 사용된다.
DENY SELECT ON table_name TO username;
REVOKE는 Grant로 부여된 권한에 대해서만 회수가 적용된다. 하지만 DENY는 권한을 거부하여 사용자가 해당 작업을 수행하지 못하도록 막는 것이다.
예를들어 어떤 schema1에 대해 select 권한이 부여있다고 가정하자.
REVOKE는 부여된 권한에 대해서만 회수가 적용되기 때문에 schema1에 대해서만 권한 회수가 가능하다.(schema1의 특정테이블에 대해 revoke불가)
하지만 DENY는 사용자가 어떤 작업을 수행하지 못하게 하는것이기 때문에 schema1의 특정 테이블에 대해서 거부가 가능하다.
[SQL] #3-3. SQL 기본 명령어 DCL
SQL 기본 명령어 DCL(Data Control Language) - 데이터 제어어 이다. - 데이터의 보완, 무결성, 데이터 회복, 병행수행, 제어 등 정의하는데 사용하는 언어이다. DCL(Data Control Language)- Commit : DML(데이터조작
nov6th.tistory.com
[MSSQL] REVOKE 와 DENY 의 차이점
SQL Server 에서 권한에 관련하여 GRANT, REVOKE, DENY 구문을 지원합니다. 각 구문은 다음과 같은 특성을 지닙니다.GRANT 는 유저에 개체에 대한 권한을 허용DENY 는 유저에 개체에 대한 권한을 차단REVOKE
mozi.tistory.com
'DB' 카테고리의 다른 글
[SQL] SQL 활용 - 절차형 SQL (0) | 2023.06.18 |
---|---|
[SQL] SQL 활용 - 그룹함수, 윈도우 (0) | 2023.06.10 |
[SQL]SQL 활용 - 계층형 질의,서브쿼리 (2) | 2023.06.09 |
[SQL] SQL 활용 - 표준 JOIN과 집합 연산자에 대하여(ANSI) (1) | 2023.06.06 |
SQL Server DB Table Partitioning (0) | 2022.04.24 |