Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

으나님의 잡다한 개발상식

(SQL) DCL(DATA CONTROL LANGUAGE) 본문

SQL

(SQL) DCL(DATA CONTROL LANGUAGE)

스위트치즈 2020. 5. 25. 20:07

1. GRANT

사용자에게 권한을 부여하는 구문

GRANT PRIVILEGES ON 테이블명 TO 사용자;

 

 

1) PRIVILEGES(권한)

- GRANT SELECT ON 테이블명 TO 사용자 : 지정된 테이블에 SELECT 권한 부여

- GRANT INSERT ON 테이블명 TO 사용자 : 지정된 테이블에 INSERT 권한 부여

- GRANT UPDATE ON 테이블명 TO 사용자 : 지정된 테이블에 UPDATE 권한 부여

- GRANT DELETE ON 테이블명 TO 사용자 : 지정된 테이블에 DELETE 권한 부여

- GRANT REFERENCES ON 테이블명 TO 사용자 : 지정된 테이블을 참조하는 제약조건을 생성하는 권한 부여

- GRANT ALTER ON 테이블명 TO 사용자 : 지정된 테이블을 수정할 수 있는 권한 부여

- GRANT INDEX ON 테이블명 TO 사용자 : 지정된 테이블의 인덱스를 생성할 수 있는 권한 부여

- GRANT ALL ON 테이블명 TO 사용자 : 지정된 테이블에 대한 모든 권한 부여

 

GRANT SELECT, INSERT, UPDATE ON EMP TO USER;

위와 같이 여러 권한을 한 문장으로 부여하는 것도 가능

 

2) WITH GRANT OPTION

- WITH GRANT OPTION : 특정 사용자에게 권한을 부여할 수 있는 권한 부여. 만약 권한을 A가 B에 부여하고 다시 C에 부여한 후 권한을 취소(REVOKE)하면 모든 권한이 회수됨.

- WITH ADMIN OPTION : 테이블에 대한 모든 권한을 부여. 만약 A가 B에 권한을 부여하고 다시 C에게 부여한 후 권한을 취소(REVOKE)하면 B의 권한만 취소됨.

 

GRANT SELECT, INSERT, UPDATE ON EMP TO USER WITH GRANT OPTION;

 

 

2. REVOKE

사용자에게 부여된 권한 회수

REVOKE PRIVILEGES ON 테이블명 FROM 사용자명 [CASCADE]

- REVOKE 문에 CASCADE를 사용할 경우 사용권한이 취소된 보안 주체에게 권한을 부여받은 다른 사용자들의 권한도 취소된다.

- GRANT OPTION을 지정하여 사용 권한이 부여된 보안 주체의 사용 권한을 취소할 경우 CASCADE를 지정하지 않으면 문이 실패한다.

 

 

예시)

/*1. 사용자 LEE가 KIM에게 R 테이블에 관한 SELECT, INSERT, DELETE 권한 부여*/
GRANT SELECT, INSERT, DELETE 
	  ON R TO KIM 
      WITH GRANT OPTION /*그리고 특정 사용자에게 다시 권한을 부여할 수 있는 권한도 부여*/
      
/*2. 사용자 KIM이 R테이블에 관한 PARK에게 SELECT, INSERT 권한 부여*/
GRANT SELECT, INSERT
	  ON R TO PARK
      
/*3. 사용자 LEE가 R테이블에 관해 KIM이 다른 사용자에게 SELECT 권한을 부여할 수 있었던 권한을 취소*/
REVOKE GRANT OPTION FOR SELECT ON R FROM KIM

/*4. 사용자 LEE가 R테이블에 관해 KIM에게 부여했던 INSERT 권한을 취소*/
REVOKE INSERT ON R FROM KIM CASCADE
/*WITH GRANT OPTION을 통해 부여 받은 사용 권한이 연계되어 취소되면 해당 사용 권한의 GRANT 및 DENY가 모두 취소*/
/*따라서 R테이블에 관해 PARK에게 부여되었던 INSERT 권한도 취소됨*/

'SQL' 카테고리의 다른 글

(SQL) JOIN 종류  (0) 2020.05.26
(SQL) SAVEPOINT  (0) 2020.05.25
(SQL) WITH 구문  (0) 2020.05.25
(SQL) ROWID  (0) 2020.05.25
(SQL) 형변환과 인덱스  (0) 2020.05.25