여러 특권을 모아놓은 집합이며, 하나의 단위로 사용자에게 부여할 수 있다. 다음 그림은 역할을 구성하는 예이다.
역할은 위 그림과 같이 특권을 가지고 있고, 사용자에게 역할이 가진 특권이 모두 부여된다. 각 사용자마다 특권 부여 작업을 실행할 필요가 없어 특권 관리가 훨씬 간편해진다.
역할을 생성하기 위해서는 CREATE ROLE 명령을 사용해야 한다. 다음은 역할을 생성하고 특권을 부여하는 예이다.
CREATE ROLE app_role; GRANT CREATE SESSION TO app_role;
위 예제에서 app_role 역할은 데이터베이스에 접속할 수 있는 특권을 부여받았다.
사용자나 다른 역할에게 GRANT 명령을 사용해 역할을 부여할 수 있다. 역할을 부여받는 대상이 사용자이든 역할이든 문법은 동일하다.
WITH ADMIN OPTION 옵션을 사용하면 역할을 부여받은 역할이 다른 사용자에게도 부여할 수 있다. 다음은 사용자에 역할을 부여하는 예이다.
GRANT app_role TO Susan WITH ADMIN OPTION;
위 예제에서 사용자 Susan은 app_role 역할을 부여 받았으므로 데이터베이스에 접속할 수 있다.
다른 사용자로부터 역할을 회수시키기 위해서는 REVOKE 명령을 사용해야 한다. DBA는 자신이 직접 부여하지 않은 역할에 대해서도 다른 사용자로부터 회수할 수 있다. 역할을 회수하는 대상이 사용자이든 역할이든 문법은 동일하다.
다음은 사용자로부터 역할 회수하는 예이다.
REVOKE app_role FROM Susan;
Tibero RDBMS에서는 빈번하게 사용되는 시스템 특권을 모아 다음과 같은 역할로 미리 정의하고 있다.
역할 | 포함된 특권 | 설명 |
---|---|---|
CONNECT | CREATE SESSION | 단순히 데이터베이스에 접속만 할 수 있는 특권이다. 이 특권은 모든 사용자에게 필요한 특권이다. |
RESOURCE | CREATE PROCEDURE CREATE SEQUENCE CREATE TABLE CREATE TRIGGER |
자신의 스키마에 기본적인 스키마 객체를 생성하는 특권이다. 이 특권은 애플리케이션 프로그램 개발자에게 필요한 기본적인 특권이다. |
DBA | DBA에게 필요한 시스템 특권을 포함하고 있다. 이 역할을 부여 받은 DBA는 시스템 특권을 임의로 다른 사용자에게 부여할 수 있다. 모든 시스템 특권이 WITH ADMIN OPTION으로 부여된다. |
사용자에게 부여한 역할은 한 세션 내에서 SET ROLE 명령을 사용함으로써 동적으로 활성화하거나 비활성화할 수 있다.
다음은 필요한 역할만 활성화 또는 비활성화 하는 예이다.
SET ROLE CLERK, RESOURCE; /* CLERK, RESOURCE 역할을 활성화한다. */ SET ROLE ALL EXCEPT CLERK; /* CLERK를 제외한 모든 역할을 활성화한다. */ SET ROLE ALL; /* 모든 역할을 활성화한다. */ SET ROLE NONE; /* 모든 역할을 비활성화한다. */
Tibero RDBMS에서는 역할의 정보를 제공하기 위해 다음 표에 나열된 정적 뷰를 제공하고 있다. DBA나 일반 사용자 모두 사용할 수 있다.
정적 뷰 | 설명 |
---|---|
DBA_ROLES | Tibero RDBMS 내의 모든 역할의 정보를 조회하는 뷰이다. |
DBA_ROLE_PRIVS | 사용자나 다른 역할에 부여된 모든 역할의 정보를 조회하는 뷰이다. |
USER_ROLE_PRIVS | 현재 사용자나 PUBLIC 사용자에게 부여된 역할의 정보를 조회하는 뷰이다. |
- 강좌 URL : http://www.gurubee.net/lecture/2093
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.