롤(Role)

: 여러 사용자가 다양한 권한을 효과적으로 관리할 수 있도록 관련된 권한끼리 묶어 놓은 것

 

시스템 롤 부여하기

CREATE USER USERTEST05 IDENTIFIED BY PASS5;
GRANT CONNECT TO USERTEST05;
GRANT RESOURCE TO USERTEST05;

 

1. 사용자 정의 롤 생성 (CREATE ROLE)

CREATE ROLE role_name [NOT IDENTIFIED | IDENTIFIED
	{BY password | EXTERNALLY}];

 

2. 사용자 정의 롤 권한 지정 및 사용자에게 롤 권한 부여

GRANT privilege_name
TO role_name;

 

사용자 정의 롤 생성 및 권한 부여하기

CREATE ROLE ROLETEST01;
GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO ROLETEST01;
GRANT ROLETEST01 TO USERTEST01;

 

데이터 사전을 통해 부여 권한에 대한 정보 확인

 

롤에 부여된 시스템 권한 정보 확인 (ROLE_SYS_PRIVS)

SELECT *
FROM ROLE_SYS_PRIVS
WHERE ROLE LIKE '%TEST%';

 

사용자에게 부여된 롤 확인 (USER_ROLE_PRIVS)

CONN USERTEST01/5678;

SELECT *
FROM USER_ROLE_PRIVS;

 

3. 롤 제거 (DROP ROLE)

DROP ROLE role_name;

 

롤 제거하기

CONN SYSTEM/1234;

DROP ROLE ROLETEST01;

 

4. 객체 권한 롤

: 객체 권한일 경우 객체를 소유한 사용자로 접속한 후 부여해야 함

 

객체 권한을 롤에 부여하기

CONN SYSTEM/1234;

CREATE ROLE ROLETEST02;

CONN HR/HR;

GRANT SELECT ON EMPLOYEE TO ROLETEST02;

CONN SYSTEM/1234;

GRANT ROLETEST02 TO USERTEST01;

 

사용자에게 롤이 부여되었는지 확인하기

CONN USERTEST01/5678

SELECT *
FROM HR.EMPLOYEE;

 

USER_ROLE_PRIVS 데이터 사전 확인하기

CONN USERTEST01/5678;

SELECT *
FROM USER_ROLE_PRIVS;

 

ROLE_TAB_PRIVS 데이터 사전 확인하기 (롤이 부여된 테이블과 관련된 권한 정보)

'SQL - Oracle > 13. 사용자 권한' 카테고리의 다른 글

Day 37 : Exercise - 사용자 권한  (0) 2021.12.08
Day 37 : 동의어(Synonym)  (0) 2021.12.08
Day 37 : 사용 권한  (0) 2021.12.08

+ Recent posts