본문 바로가기

프로그래밍/SQL

[SQL 요약 정리] 1-12. 데이터 제어어(DCL)

12. 데이터 제어어(DCL)


1) 권한(Privilege)

- 사용자와 Role에 부여 가능한 권한 종류는 80개 이상

- 대개 DB관리자(DBA)가 부여

- Privilege

특정 SQL문장 수행 혹은 특정 Object에 허가된 작업

시스템권한: 특정 SQL문장 실행 권한

오브젝트 권한: 특정 Object 접근 제어 권한


2) Object Privileges

- DBA는 특정 Object에 대해 사용자에게 action 수행 허가

- Object 소유자는 다른 사용자에게 Object Privileges 부여 가능

- 권한 부여 문형

GRANT 권한 [(컬럼명)][ 권한...|ALL]

ON Object명

TO 사용자 | ROLE | PUBLIC [, 사용자...]

[WITH GRANT OPTION];

- 권한 제거 문형

REVOKE 권한 [(컬럼명)][ 권한...|ALL]

ON Object명

FROM 사용자 | ROLE | PUBLIC [, 사용자...]


3) Role

- 연관 권한들의 집합(Privileges의 그룹)

- 권한 부여와 회수 용이

- Role : User -> n:n 부여 및 액세스 가능

- 사용자는 Role에 Role을 부여 가능

- 순서: Role 생성 -> Role에 권한 부여 -> 사용자 or Role 에 Role 부여

- 문형

CREATE ROLE roleName;


4) Privilege 및 Role에 관한 Dictionary

- 권한과 룰에 관한 정보를 지닌 데이터 사전 뷰의 종류

- ROLE_SYS_PRIVS: Role에 부여된 시스템 권한

- ROLE_TAB_PRIVS: Role에 부여된 테이블 권한

- USER_ROLE_PRIVS: 현재 사용자가 액세스 가능한 Role

- USER_TAB_PRIVS_MADE: 현재 사용자의 객체에 부여한 객체권한

- USER_TAB_PRIVS_RECD: 현재 사용자의 객체에 부여된 객체권한

- USER_COL_PRIVS_MADE: 현재 사용자 객체의 특정 칼럼에 부여한 객체권한

- USER_COL_PRIVS_RECD: 현재 사용자 객체의 특정 칼럼에 부여된 객체권한