본문 바로가기
Database/Oracle

[ORACLE] USER_SYS_PRIVS로 사용자 시스템 권한 정밀 분석

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

[ORACLE] USER_SYS_PRIVS

1. USER_SYS_PRIVS란?

USER_SYS_PRIVS는 Oracle 데이터베이스에서 현재 사용자에게 직접 부여된 시스템 권한(System Privileges)을 보여주는 데이터 딕셔너리 뷰입니다. 이 뷰는 보안 감사, 권한 점검, 개발자 역할 검토 시 매우 유용하게 사용됩니다.

2. 시스템 권한이란?

시스템 권한(System Privilege)은 Oracle 내에서 테이블 생성, 사용자 생성, 인덱스 관리, 뷰 생성 등과 같은 객체 수준이 아닌 DB 차원의 권한입니다.

  • CREATE SESSION – DB 접속 허용
  • CREATE TABLE – 테이블 생성 허용
  • DROP USER – 사용자 삭제 허용
  • ALTER SYSTEM – 시스템 파라미터 변경 허용

3. 주요 컬럼 설명

컬럼명 설명
USERNAME 권한이 부여된 사용자 이름 (현재 사용자와 동일)
PRIVILEGE 부여된 시스템 권한 이름
ADMIN_OPTION 해당 권한을 다른 사용자에게 다시 부여할 수 있는지 여부 (YES/NO)

4. 실전 활용 예제

-- 현재 사용자에게 부여된 시스템 권한 목록 조회
SELECT PRIVILEGE, ADMIN_OPTION
FROM USER_SYS_PRIVS;
      
-- ADMIN_OPTION이 YES인 권한만 조회
SELECT PRIVILEGE
FROM USER_SYS_PRIVS
WHERE ADMIN_OPTION = 'YES';
      

5. 관련 권한 뷰 비교

뷰 이름 역할 범위
USER_SYS_PRIVS 사용자에게 직접 부여된 시스템 권한 현재 사용자
ROLE_SYS_PRIVS 역할(Role)을 통해 부여된 시스템 권한 역할 단위
SESSION_PRIVS 현재 세션이 사용하는 모든 권한 직접 + 간접 권한 포함
DBA_SYS_PRIVS 모든 사용자/역할의 시스템 권한 DBA 전용

6. 고급 활용 전략

  • 보안 감사 스크립트 작성: 불필요한 고급 권한(예: DROP ANY TABLE) 점검
  • 개발자 권한 최소화: CREATE SESSION, CREATE PROCEDURE 등 최소 권한만 부여
  • ADMIN_OPTION 확인: 권한 재전파 가능 여부 검토

7. 결론

USER_SYS_PRIVS는 데이터베이스 보안 및 권한 관리에 있어 핵심적인 역할을 하며, 직접 부여된 권한의 범위를 명확히 파악할 수 있는 창구입니다. 정기적인 점검을 통해 불필요하거나 과도한 권한을 제어하는 것이 보안의 시작입니다.

참고 자료

728x90