자격증/SQLD
[SQLD] SQL 활용 - DCL(Data Control Language)
숭코기
2023. 8. 31. 22:22
728x90
01. 데이터 제어어: DCL(Data Control Language)
테이블 사용자 권한 부여 명령어
명령어 | 설명 |
GRANT | 권한부여 |
REVOKE | 권한회수 |
GRANT 권한 ON 테이블명 TO 유저명;
REVOKE 권한 ON 테이블명 TO 유저명;
권한 | 설명 |
ALL | 모든 권한 부여 |
SELECT | SELECT 권한 부여 |
INSERT | INSERT 권한 부여 |
UPDATE | UPDATE 권한 부여 |
DELETE | DELETE 권한 부여 |
REFERENCES | 참조 권한 부여 |
ALTER | ALERT 권한 부여 |
INDEX | 인덱스 생성 권한 부여 |
GRANT SELECT, INSERT ON 음식점 TO TOM;
-- TOM 유저에게 음식점 테이블에 대한 SELECT, INSERT 권한을 부여
02. WITH GRANT OPTION
WITH GRANT OPTION
- 자신이 부여받은 권한에 대해서 다른 계정의 사용자에게 권한을 부여할 수 없습니다.
- 권한을 회수할 경우 연쇄적으로 권한이 회수됩니다.
A → B → C
A가 B에게 권한을 부여하고 B가 C에게 권한을 부여했다면
A가 B에게 권한을 회수하면 C도 자동으로 회수된다.
// 01.DBA 계정으로 USER01 사용자에게 CREATE TABLE 권한을 부여합니다
GRANT CREATE TABLE TO USER01 WITH GRANT OPTION;
// 02. 이후 USER01 계정으로 USER02 사용자에게 CREATE TABLE 권한을 부여합니다
GRANT CREATE TABLE TO USER02;
// 03. 이후 USER01에게 주었던 CREATE TABLE 권한을 회수합니다.
REVOKE CREATE TABLE FROM USER01;
-- USER01이 USER02에게 부여한 CREAT TABLE 권한이 같이 회수됩니다.
WITH ADMIN OPTION
- 시스템 권한을 가진 계정인 DBA 권한으로만 부여가 가능합니다.
- 자신이 부여받은 권한에 대해서 다른 계정의 사용자에게 권한을 부여할 수 있습니다.
- 권한 회수 시 회수한 유저의 권한만 회수됩니다.
A → B → C
A가 B에게 권한을 부여하고 B가 C에게 권한을 부여했다면
A가 B에게 권한을 회수해도 C는 권한이 취소되지 않는다.
// 01.DBA 계정으로 USER01 사용자에게 CREATE TABLE 권한을 부여합니다
GRANT CREATE TABLE TO USER01 WITH ADMIN OPTION;
// 02. 이후 USER01 계정으로 USER02 사용자에게 CREATE TABLE 권한을 부여합니다
GRANT CREATE TABLE TO USER02;
// 03. 이후 USER01에게 주었던 CREATE TABLE 권한을 회수합니다.
REVOKE CREATE TABLE FROM USER01;
-- USER01이 USER02에게 부여한 CREAT TABLE 권한은 회수되지 않고 남아있습니다.
728x90