DCL은 무엇일까?
데이터 제어어 (DCL)
--
DCL은
DBMS에서 데이터에 대한 권한을 관리하고 제어하는 데 사용되는 SQL 명령어다.
주로 사용자의 권한을 설정하거나 해제하는 데 사용되며,
데이터에 대한 접근을 제어하는 데 중요한 역할을 수행한다.
대표적인 DCL
- GRANT : 사용자가 DB 객체(테이블, 뷰, 프로시저 등)에 접근할 수 있는 권한을 부여
- REVOKE : 이미 부여된 권한을 취소 및 회수
GRANT 기본 형식
GRANT 권한 [, 권한2, ...] ON 객체 TO 사용자 [, 사용자2, ...] [WITH GRANT OPTION];
- GRANT 권한 : 부여할 권한들 (SELECT, INSERT, UPDATE, DELETE, ALL 등)
- ON 객체 : 권한을 부여할 DB 객체 (테이블, 뷰 등)
- TO 사용자 : 권한을 부여할 사용자 or 역할(룰, ROLE) (사용자 대신 PUBLIC 작성 시 모든 사용자에게 부여)
- WITH GRANT OPTION : 해당 권한을 부여받은 사용자가 다른 사용자에게도 동일한 권한을 부여하는 것을 허용
(즉, 해당 사용자가 다른사람에게 동일한 권한을 부여할 수 있음)
GRANT 예시 코드
GRANT SELECT, INSERT ON Members TO user1;
user1에게 Members테이블에 대한 SELECT, INSERT(읽기, 쓰기) 권한을 부여
GRANT SELECT ON Members TO PUBLIC;
모든 사용자에게 Members테이블에 대한 SELECT(읽기)권한을 부여
GRANT UPDATE ON Members TO user2 WITH GRANT OPTION;
user2에게 Members테이블에 대한 UPDATE(수정)권한을 부여하고,
해당 사용자는 다른 사용자에게 동일한 권한을 부여할 수 있게 된다.
REVOKE 기본 형식
REVOKE 권한 [, 권한2, ...] ON 객체 FROM 사용자 [, 사용자2, ...]
- REVOKE 권한 : 회수할 권한들 (SELECT, INSERT, UPDATE, DELETE, ALL 등)
- ON 객체 : 권한을 회수할 DB 객체
- FROM 사용자 : 권한을 회수할 사용자 또는 역할(룰, ROLE) (사용자 대신 PUBLIC 작성 시 모든 사용자가 대상)
REVOKE 예시 코드
REVOKE INSERT ON Members FROM user1;
user1로부터 Members테이블에 대한 INSERT(쓰기)권한을 회수한다.
REVOKE ALL ON Members FROM user2;
user2로부터 Members테이블에 대한 모든 권한을 회수한다.
--
'SQL [DB]' 카테고리의 다른 글
[SQL문] 서브쿼리 (SQL문 내부에 또 다른 SQL문) (0) | 2024.09.15 |
---|---|
[SQL문] 트랜잭션 제어어 (TCL) (0) | 2024.09.14 |
[SQL문] 데이터 조작어 (DML) (0) | 2024.09.12 |
[SQL문] 데이터 정의어 (DDL) (0) | 2024.09.12 |
관계 데이터 모델의 개념 (릴레이션, 무결성, 관계대수) (0) | 2024.09.10 |