Data Base_Oracle/SQL

SQL_ROLE 개요 & DATA_DICTIONARY

pathas 2020. 1. 10. 16:58

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롤을 부여받으면
관리자가 할 수 있는 모든 작업을 수행할 수 있음 → 관리자 계정이 됨


롤의 개요와 데이터 딕셔너리에 대해 알아보았습니다.

롤이란 권한들의 묶음이기 때문에 같은 권한 묶음을 여러 계정에 부여해야 할 때

편리하게 사용할 수 있습니다.