SQL_ROLE 개요 & DATA_DICTIONARY
ROLE
목적에 맞는 권한들을 여러 가지 모아둔 권한 묶음
ROLE 사용 목적
편리성 추구
많은 권한들을 여러 계정에 한 번에 부여 / 회수 가능
ex) create table, create view, create session 권한들을
하나의 ROLE로 묶어서 한 번에 부여 가능
ROLE 종류
| ROLE | 설명 |
|---|---|
| CONNECT | 접속 권한, create session이 포함되어 있음 |
| RESOURCE | 테이블 관리 권한, create table 포함 |
| DBA | 관리자 ROLE |
| ... | ... |
ROLE _ DATADICTIONARY
※ dba_roles
롤의 대략적인 정보가 담겨있는 Oracle 자체 테이블, 관리자만 열람 가능
| ROLE | PASSWORD | AUTHENTICAT |
|---|---|---|
| CONNECT | NO | NONE |
| RESOURCE | NO | NONE |
| DBA | NO | NONE |
| ... | ... | ... |
※ dba_XXX, sys_XXX, v$_XXX : 관리자만 열람 가능한 테이블
user_XXX : 일반 사용자도 열람 가능
※ dba_sys_privs
롤의 이름과 거기에 부여되어 있는 권한을 조회할 수 있는 Oracle 자체 테이블
▶ CONNECT 구조 / 내용 확인
[ SQL> select * from dba_sys_privs where grantee='CONNECT'; ]
| GRANTEE | PRIVILEGE | ADM |
|---|---|---|
| CONNECT | CREATE SESSiON | NO |
※ GRANTEE : 롤 이름
PRIVILEGE : 권한 이름
▶ RESOURCE 구조 / 내용 확인
[ SQL> select * from dba_sys_privs where grantee='RESOURCE'; ]
| GRANTEE | PRIVILEGE | ADM |
|---|---|---|
| RESOURECE | CREATE TABLE | NO |
| RESOURECE | CREATE TYPE | NO |
| RESOURECE | CREATE SEQUENCE | NO |
| RESOURECE | CREATE TRIGGER | NO |
| ... | ... | ... |
※ 오라클 11g 이전 버전에서는 resource롤에 create view도 포함되어 있었음
버전에 따라 롤의 구성이 다를 수 있음
▶ DBA 구조 / 내용 확인
[ SQL> select * from dba_sys_privs where grantee='DBA'; ]
| GRANTEE | PRIVILEGE | ADM |
|---|---|---|
| DBA | DROP ANY CUBE BUILD PROCESS | YES |
| DBA | CREATE CUBE | YES |
| DBA | ALTER ANY CUBE DIMENSION | YES |
| ... | ... | ... |
※ 202개의 권한이 포함되어 있으며 DBA롤을 부여받으면
관리자가 할 수 있는 모든 작업을 수행할 수 있음 → 관리자 계정이 됨
롤의 개요와 데이터 딕셔너리에 대해 알아보았습니다.
롤이란 권한들의 묶음이기 때문에 같은 권한 묶음을 여러 계정에 부여해야 할 때
편리하게 사용할 수 있습니다.