본문 바로가기
Database/Oracle

[ORACLE] USER_ROLE_PRIVS 완전 해설 : 사용자에게 부여된 롤(Role) 권한 파악하기

by Papa Martino V 2025. 8. 6.
728x90

USER_ROLE_PRIVS 완전 해설 : 사용자에게 부여된 롤(Role) 권한 파악하기
[ORACLE] USER_ROLE_PRIVS

 

Oracle 데이터베이스에서 권한 관리는 보안과 운영 효율성의 핵심입니다. 특히 롤(Role)은 여러 개의 권한을 하나의 그룹으로 묶어 사용자에게 일괄적으로 부여하거나 회수할 수 있는 강력한 도구입니다. 이때 현재 사용자에게 어떤 롤이 부여되었는지를 확인할 수 있는 뷰가 바로 USER_ROLE_PRIVS입니다. 이 글에서는 USER_ROLE_PRIVS 뷰의 구조, 사용 목적, 실무 예제와 함께, 권한 보안 및 감사(Compliance) 측면에서 어떻게 활용할 수 있는지를 상세히 안내합니다.

1. USER_ROLE_PRIVS 뷰란?

USER_ROLE_PRIVS는 현재 사용자가 직접 부여받은 롤(Role) 목록을 보여주는 Oracle의 데이터 딕셔너리 뷰입니다. 해당 뷰는 다른 사용자나 DBA가 부여한 역할 기반 권한의 구조를 추적하고, 불필요한 권한 보유를 방지하는 데 유용합니다.

2. 주요 컬럼 설명

컬럼명 설명
USERNAME 권한이 부여된 사용자 이름 (일반적으로 현재 세션 사용자)
GRANTED_ROLE 부여된 롤 이름
ADMIN_OPTION ADMIN 옵션 여부 ('YES'면 해당 롤을 다른 사용자에게 부여 가능)
DEFAULT_ROLE 세션 시작 시 자동 활성화되는 기본 롤 여부
OS_GRANTED OS를 통해 부여된 권한 여부 (일반적으로 NO)

3. 실전 활용 예제


SELECT GRANTED_ROLE, ADMIN_OPTION, DEFAULT_ROLE 
FROM USER_ROLE_PRIVS;
  

현재 사용자에게 부여된 롤과 그 속성을 확인할 수 있으며, 보안 점검이나 최소 권한 원칙을 적용할 때 매우 유용합니다.

4. 롤(Role)의 핵심 역할

  • 복수의 권한을 그룹화하여 관리 효율성 증대
  • 보안 정책에 따라 역할 기반 접근 제어(RBAC) 가능
  • 개별 권한 회수 없이 롤 회수로 간편한 제어 가능

5. 관련 뷰 비교표

뷰 이름 역할 내용 접근 권한
USER_ROLE_PRIVS 사용자에게 직접 부여된 롤 현재 사용자의 롤 목록 일반 사용자
ROLE_ROLE_PRIVS 롤 간 계층 관계 롤이 다른 롤을 포함하는 관계 DBA 또는 권한 사용자
ROLE_SYS_PRIVS 롤에 포함된 시스템 권한 CREATE, DROP 등 고급 권한 확인 DBA 또는 권한 사용자
ROLE_TAB_PRIVS 롤에 포함된 객체 권한 TABLE, VIEW에 대한 SELECT, INSERT 권한 등 DBA 또는 권한 사용자

6. 자주 묻는 질문 (FAQ)

Q1. DEFAULT_ROLE이 'NO'이면 어떤 의미인가요?

A. 세션이 시작될 때 자동 활성화되지 않으며, 사용자가 SET ROLE 명령어로 수동 활성화해야 사용할 수 있는 롤입니다.

Q2. ADMIN_OPTION이 'YES'이면 위험한가요?

A. 어느 정도 보안 위험이 있습니다. 해당 사용자가 그 롤을 다른 사용자에게 부여할 수 있기 때문입니다. 일반 사용자에게는 되도록 부여하지 않는 것이 안전합니다.

Q3. OS_GRANTED가 'YES'인 경우는 언제인가요?

A. 일반적인 DB 환경에서는 거의 발생하지 않으며, 운영 체제와의 통합 인증 환경에서 특수하게 나타날 수 있습니다.

7. 결론

USER_ROLE_PRIVS 뷰는 Oracle 사용자 계정에 부여된 롤과 그 속성을 확인하고, 보안 관리 및 운영 정책 점검에 있어 필수적인 도구입니다. 권한 관리는 데이터베이스 보안의 핵심이며, 최소 권한 원칙(Least Privilege Principle)을 적용하려면 본 뷰의 이해와 활용이 반드시 선행되어야 합니다.

8. 참고 문헌

  • Oracle Database Security Guide – Oracle 공식 문서
  • Oracle SQL Language Reference – GRANT, REVOKE 문법
728x90