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롤을 부여받으면
관리자가 할 수 있는 모든 작업을 수행할 수 있음 → 관리자 계정이 됨
롤의 개요와 데이터 딕셔너리에 대해 알아보았습니다.
롤이란 권한들의 묶음이기 때문에 같은 권한 묶음을 여러 계정에 부여해야 할 때
편리하게 사용할 수 있습니다.