[Oracle] ROLE(롤)_권한 그룹 관리

gayoung·2023년 11월 10일

DB

목록 보기
5/16

1. ROLE이란?

  • 사용자에게 허가할 수 있는 권한들의 집합
  • ROLE을 이용해 권한부여와 회수 쉽게 사용 가능
  • ROLE은 CREATE ROLE권한을 가진 USER에 의해 생성됨
  • 한 사용자가 여러개의 ROLE을 ACCESS할 수 있고, 여러사용자에게 같은 ROLE 부여가능
  • 사용자는 ROLE에 ROLE을 부여할 수 있음
  • 시스템 권한을 부여 & 취소할 때와 동일한 명령 사용
  • Oracle DB를 설치하면 기본적으로 CONNECT, RESOURCE, DBA ROLE이 제공


2. ROLE 생성

  CREATE ROLE role_name

예제

-- 1. ROLE 생성하기
SQL> CREATE ROLE role1;

-- 2. ROLE에 권한 부여하기
SQL> GRANT CREATE SESSION, CREATE TABLE TO role1;

-- 3. 권한이 부여된 ROLE을 USER 나 ROLE 에 부여하기
SQL> GRANT role1 TO GAYOUNG; // GAYOUNG 라는 유저에 부여함.

3. ORACLE DB 설치 시 기본 생성되는 ROLE

  • DBA_ROLES 테이블을 통해 미리 정의된 ROLE을 조회할 수 있음
SQL> SELECT * FROM DBA_ROLES;
ROLE                      PASSWORD
----------------------    -----------
CONNECT                   NO
RESOURCE                  NO
DBA                       NO
SELECT_CATALOG_ROLE       NO
....

3-1. CONNECT

  • 오라클에 접속할 수 있는 세션 생성 및 테이블 생성/조회를 할 수 있는 가장 일반적인 권한들로 이루어짐.

  • CONNECT ROLE 이 없다면 유저를 생성하고 나서도 Oracle 에 접속할 수 없다.

  • 아래의 명령어로 CONNECT ROLE이 어떤 권한으로 이루어져 있는 지 확인할 수 있다.

SQL>SELECT grantee, privilege
    FROM DBA_SYS_PRIVS
    WHERE grantee = 'CONNECT';

GRANTEE     PRIVILEGE
----------- ---------------------
CONNECT     ALTER SESSION
CONNECT     CREATE CLUSTER
CONNECT     CREATE DATABASE LINK
CONNECT     CREATE SEQUENCE
CONNECT     CREATE SESSION
...

3-2. RESOURCE ROLE

  • Store Procedure 나 Trigger를 사용할 수 있는 권한들로 이루어져 있음.
  • PL/SQL사용시 RESOURCE ROLE 부여해주어야 함
  • 유저를 생성하면 일반적으로 CONNECT, RESOURCE ROLE을 부여한다.

3-3. DBA ROLE

  • 모든 시스템 권한이 부여된 ROLE.
  • DBA ROLE은 데이터베이스 관리자에게만 부여해야 한다.

0개의 댓글