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
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] SQL 최적화 기본 원리 - 옵티마이저와 실행계획 (0) | 2023.08.31 |
---|---|
[SQLD] SQL 활용 - 절차형 SQL (0) | 2023.08.31 |
[SQLD] SQL 활용 - 윈도우 함수 (0) | 2023.08.31 |
[SQLD] SQLD 활용 - 그룹함수 (0) | 2023.08.31 |
[SQLD] SQL 활용 - 서브쿼리(Subquery) (0) | 2023.08.31 |