카테고리 없음

03. 롤 관리

euncoding-240213 2024. 3. 28. 22:20

롤이란?

사용자는 데이터베이스에서 어떤 작업을 진행하기 위해 해당 작업과 관련된 권한을 반드시 부여받아야 한다. 하지만 신규 생성자는 아무런 권한이 없으므로 오라클 데이터베이스에서 제공하는 다양한 권한을 일일이 부여해주어야 한다. 이러한 불편한 점을 해결하기 위해 롤을 사용한다. 롤은 여러 종류의 권한을 묶어 놓은 그룹을 뜻한다. 롤을 사용하면 여러 권한을 한번에 부여하고 해제할 수 있으므로 권한 관리 효율을 높인다. 롤은 오라클 데이터베이스를 설치할 때 기본으로 제공되는 사전 정의된 롤과 사용자 정의 롤로 나뉜다.

 

사전 정의된 롤

-CONNECT롤

사용자가 데이터베이스에 접속하는 데 필요한 CREATE SESSION권한을 가지고 있다.

ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE SEQUENCE, CREATE SESSION, CREATE SYNONYM, CREATE TABLE, CREATE VIEW

-RESOURCE롤

사용자가 테이블, 시퀀스를 비롤한 여러 객체를 생성할 수 있는 기본 시스템 권한을 묶어놓은 롤이다.

CREATE TRIGGER, CREATE SEQUENCE, CREATE TYPE, CREATE PROCEDURE, CREATE CLUSTER, CREATE OPERATOR, CREATE INDEXTYPE, CREATE TABLE 

보통 새로운 사용자를 생성하면 CONNECT롤과 RESOURCE롤을 부여하는 경우가 많다. CONNECT롤에서 뷰를 생성하는 CREATE VIEW권한과 동의어를 생성하는 CREATE SYNONYM 권한이 제외되었기 때문에 뷰와 동의어 생성 권한을 사용자에게 부여하려면 권한을 따로 부여해 주어야 한다.

-DBA롤

데이터베이스를 관리하는 시스템 권한을 대부분 가지고 있다.

 

사용자 정의 롤

사용자 정의 롤은 필요에 의해 직접 권한을 포함시킨 롤을 뜻한다. 롤 생성법을 알아보자.

1_ CREATE ROLE문으로 롤을 생성한다

2_ GRANT 명령어로 생성한 롤에 권한을 포함시킨다

3_ GRANT 명령어로 권한이 포함된 롤을 특정 사용자에게 부여한다.

4_ REVOKE 명령어로 롤을 취소시킨다

 

 

롤 생성과 권한 포함

롤을 생성하려면 데이터 관리 권한이 있는 사용자가 필요하므로 SYSTEM 계정으로 접속하여 ROLESTUDY롤을 생성해보자. 롤을 생성한 후 GRANT명령어로 권한을 포함시킬 수 있다. 이미 존재하는 롤도 포함시킬 수 있다.

ROLESTUDY 롤에는 CONNECT, RESOURCE, CREATE VIEW, CREATE SYNONYM 권한을 포함하도록 만든다.

CREATE ROLE ROLESTUDY;

GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE SYNONYM TO ROLESTUDY;

 

이렇게 완성된 롤을 사용자에게 부여할 수 있다.

GRANT ROLESTUDY TO ORCLSTUDY;

 

부여된 롤과 권한 확인

ORCLSTUDY사용자에 현재 부여된 권한과 롤을 확인하려면 USER_SYS_PRIVS, USER_ROLE_PRIVS 데이터 사전을 사용하면 된다. 데이터 관리 권한을 가진 계정은 DBA_SYS_PRIVS, DBA_ROLE_PRIVS 데이터사전을 사용해도 된다.

 

부여된 롤 취소

GRANT명령어로 부여한 ROLE을 취소할 때 REVOKE - FROM문을 사용한다.

 

롤 삭제 

롤 삭제는 DROP 명령어를 사용한다. 롤을 삭제하면 해당 롤을 부여받은 모든 사용자의 롤이 취소(REVOKE)된다.