롤(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 |