Oracle - 권한 관리 및 롤(ROLE)

1. 권한 관리 

 

1-1) 시스템 권한

사용자가 데이터베이스에서 특정 작업을 수행할 수 있도록 하며, 테이블 스페이스 생성과 같이 작업을 수행할 때 가지는 일반적인 권한을 말한다. 권한은 GRANT와 REVOKE를 사용해 권한 부여나 권한을 삭제할 수 있다.

 

1-2) 객체 권한

사용자가 특정 객체를 액세스 및 조작할 수 있도록 하며, 다른 사람이 소유한 오브젝트에 접근하고자 할 때 필요한 권한을 말한다. 또한 특정 테이블, 뷰, 시퀸스 등에서 특정 작업을 수행할 수 있는 권한 또는 권리를 말한다.

 

예) 권한 

dba_table : 모든 사용자 혹은 모든 테이블 조회가 가능한 테이블

all_table : 내 계정 및 권한이 있는 다른 사용자의 테이블 조회가 가능한 테이블

user_tables : 내 계정이 소유한 테이블만 조회가 가능한 테이블 

 

 

1-3) 권한 정보 얻기 

권한 관련 뷰 정보
DBA_SYS_PRIVS 사용자와 롤에 부여된 시스템 권한
ROLE_SYS_PRIVS 롤이 가지고 있는 시스템 권한
DBA_TAB_PRIVS 사용자나 롤에 부여된 객체 권한
ROLE_TAB_PRIVS 롤에 부여된 객체 권한

 

1-4) 시스템 권한 할당 및 해제 

- 시스템 권한 할당 명령어

GRANT <시스템 권한>,<시스템 권한> .......

TO [<사용자 명 | 롤 명>,<사용자 명 | 롤 명> ...... | PUBLIC];

[WITH ADMIN OPTION];

  • 사용자 또는 롤에 시스템 권한을 할당
  • PUBLIC: DB의 모든 사용자에게 권한 할당
  • WITH ADMIN OPTION : 할당된 권한을 SYS 관리자와 동일하게 할당 및 해제

- 시스템 권한 해제 명령어

REVOKE <시스템 권한>,<시스템 권한> .......

FROM [<사용자 명 | 롤 명>,<사용자 명 | 롤 명> ...... | PUBLIC];

  • 사용자 또는 롤에 시스템 권한을 해제 
 

1-5) 객체 할당 및 해제 

- 객체 권한 할당 명령어

GRANT <객체 권한>,<객체 권한> ....... ON <[사용자 명].객체명>, <[사용자 명].객체명> ......

TO [<사용자 명 | 롤 명>, <사용자 명 | 롤 명>...... | PUBLIC];

[WITH GRANT OPTION];

  • 사용자 또는 롤에 객체 권한을 할당
  • PUBLIC : DB의 모든 사용자에게 권한 할당
  • WITH GRANT OPTION : 할당된 권한을 다른 사용자에게 할당 
- 객체 권한 해제 명령어 

REVOKE <객체 권한>,<객체 권한> ....... ON <[user명].객체명>, <[user명].객체명> ......

FROM [<사용자 명 | 롤 명>,<사용자 명 | 롤 명> ...... | PUBLIC];

  • 사용자 또는 롤의 객체 권한을 해제
  • 직접 할당된 권한만 해제 가능
 
2. 롤(ROLE)
 

롤은 여러 시스템 권한 및 객체 권한을 묶어 놓은 집합이다. 이는 데이터베이스 관리자가 사용자에게 권한을 효율적으로 부여하고 관리하기 위해 사용하는 핵심 보안 기능을 말한다. 롤은 실제 사용자가 아니라, 권한을 담는 컨테이너 또는 별칭을 말한다. 롤을 사용하는 이유로는 간소화, 쉬운 변경, 유연성때문에 사용한다.

- DBA_ROLE_PRIVS : 사람이나 롤에 부여된 롤

- ROLE_ROLE_PRIVS : 롤에 할당된 롤 

 

2-1 기본 룰 설정 

 

사용자에게 많은 롤을 할당할 수 있으며 로그인 시 자동으로 활성화되는 이러한 롤의 서브 집합을 기본 롤이라고 한다. 기본적으로 사용자에게 할당된 모든 롤은 로그인 시 활성화되며 암호가 필요하지 않다. ALTER USER 명령을 사용하여 사용자에 대한 기본 롤을 제한할 수 있다.

2-2 롤 활성화 및 비활성화
롤 활성화 및 비활성화는 오라클 데이터베이스에서 사용자가 현재 사용할 수 있는 권한 집합을 동적으로 제어하는 기능이다. 사용자는 데이터베이스에 접속한 후에도 SET ROLE 명령어를 사용하여 현재 활성화된 롤을 변경할 수 있다.

 

2-3 롤 생성/ 취소 / 삭제/ 할당 
롤 생성은 CREATE ROLE 명령어를 사용하여 데이터베이스에서 새로운 권한 그룹을 정의하는 작업을 말하며, 롤은 권한들을 묶어 사용자에게 효율적으로 부여하기 위한 핵심 보안 기능이다. 롤 취소는 REVOKE 명령어를 사용해 사용자나 다른 롤에게 부여했던 롤 권한을 회수하는 것을 말한다. 롤 삭제는 DROP ROLE 명령어를 사용하여 데이터베이스에서 특정 롤을 영구적으로 제거하는 것을 의미한다. 롤 할당은 GRANT 명령어를 사용해 롤을 사용자나 다른 롤에게 부여하는 작업이다.