DCL(Data Control Language)

2023. 3. 8. 20:22SQLD 정리

반응형

데이터베이스 사용자에게 권한을 부여하거나 회수하는 언어

 

권한 부여 -> GRANT

GRANT 권한

ON 테이블

TO 유저

WITH GRANT OPTION 또는 WITH ADMIN OPTION;

 

WITH GRANT OPTION

- USER1 이 SELECT 권한을 받았고 USER1은 받은 SELECT 권한으로 USERT2에게 SELECT 권한을 주었다. 그런데 USER1의 SELECT 권한이 취소된다면 USER1 뿐만 아니라 USER2도 권한이 취소된다.

 

WITH ADMIN OPTION

- USER1 이 SELECT 권한을 받았고 USER1은 받은 SELECT 권한으로 USERT2에게 SELECT 권한을 주었다. 그런데 USER1의 SELECT 권한이 취소된다면 USER1 만 SELECT 권한이 취소되고 USER2의 권한은 취소되지 않는다.

 

 

권한 회수 -> REVOKE

REVOKE 권한

ON 테이블

FROM 유저;

 

권한

-SELECT

-INSERT

-UPDATE

-DELETE

-REFERENCES

-ALTER

-ALL

 

UPDATE SPORTS_TABLE 

SET SOCCER = 'FUN'

WHERE PLAYER = 10

 

위와 같은 UPDATE문을 수행할 수 있도록 권한을 부여해보자. 보통 UPDATE 권한만 주면 될거라고 생각하지만 WHERE절이 포함되어 있으면 SELECT 권한도 같이 줘야 한다. UPDATE할때 어디를 UPDATE할건지 WHERE 조건에 해당하는걸 조회해야 하기 때문이다.

 

ROLE

-데이터베이스상에서 많은 사용자들에게 개별적으로 권한을 부여하고 관리하는 어려움을 해소하고자 다양한 권한을 하나의 그룹으로 묶어서 관리할 수 있도록 하는 논리적인 권한의 그룹(명령어)를 지칭

- 다양한 권한을 다양한 유저를 대상으로 관리하기 위한 명령어

- 여러 사용자에게 동일한 role 부여 가능

- role의 생성은 [CREATE ROLE] 권한을 가진 유저가 할 수 있다.

 

 

 

 

 

반응형