본문 바로가기
Database/Oracle

[ORACLE] USER_TAB_PRIVS_RECD : 수신된 오브젝트 권한 완전 분석

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

USER_TAB_PRIVS_RECD : 수신된 오브젝트 권한 완전 분석
[ORACLE] USER_TAB_PRIVS_RECD

1. USER_TAB_PRIVS_RECD란?

USER_TAB_PRIVS_RECD는 Oracle 데이터베이스에서 **현재 사용자가 다른 사용자로부터 수신한 오브젝트 권한**을 조회할 수 있는 데이터 딕셔너리 뷰입니다. 이 뷰는 사용자 본인이 직접 소유하지 않은 객체에 대해 어떤 권한을 누구로부터 부여받았는지 확인할 때 사용됩니다. 오라클의 권한 시스템은 명시적 권한과 역할(Role)을 통한 권한으로 구분되며, USER_TAB_PRIVS_RECD는 명시적으로 받은 권한에 대한 정보를 제공합니다.

2. 주요 컬럼 설명

컬럼명 설명
GRANTOR 권한을 부여한 사용자
TABLE_NAME 권한이 부여된 오브젝트 이름
PRIVILEGE 부여된 권한 종류 (SELECT, INSERT 등)
GRANTABLE 수신자가 권한을 다시 부여할 수 있는지 여부 (YES/NO)
TYPE 오브젝트의 유형 (TABLE, VIEW 등)

3. 실전 활용 예제

3.1. 내가 수신한 모든 오브젝트 권한 확인


SELECT 
  GRANTOR, 
  TABLE_NAME, 
  PRIVILEGE, 
  GRANTABLE 
FROM 
  USER_TAB_PRIVS_RECD;
    

3.2. 특정 사용자로부터 받은 권한만 조회


SELECT 
  TABLE_NAME, 
  PRIVILEGE 
FROM 
  USER_TAB_PRIVS_RECD 
WHERE 
  GRANTOR = 'HR';
    

3.3. 다시 부여 가능한 권한만 필터링


SELECT 
  TABLE_NAME, 
  PRIVILEGE 
FROM 
  USER_TAB_PRIVS_RECD 
WHERE 
  GRANTABLE = 'YES';
    

4. 관련 권한 뷰 비교

뷰 이름 기능 권한 방향 조회 가능 범위
USER_TAB_PRIVS 내가 받은 오브젝트 권한 전체 조회 수신 + 직접 본인에게 부여된 권한
USER_TAB_PRIVS_RECD 내가 다른 사용자로부터 수신한 권한만 조회 수신 명시적 권한만
USER_TAB_PRIVS_MADE 내가 부여한 권한 조회 부여 수여된 권한 내역
ALL_TAB_PRIVS 접근 가능한 모든 권한 조회 복합 본인 + 타인 부여 권한

5. USER_TAB_PRIVS_RECD 활용 전략

  • 보안 감사: 불필요하게 부여된 권한 탐지 및 위험도 평가
  • 접근 제어 정책 수립: 외부 객체에 대한 접근 권한을 정기적으로 점검
  • 변경 추적: 수신 권한 변경 전후 비교를 통해 이상 행위 탐지
  • 개발 환경 분석: 외부 객체 활용 시 원 소유자 파악 가능

6. 주의할 점

  • 역할 기반 권한은 포함되지 않음: ROLE을 통한 권한은 조회되지 않음
  • CASE 민감: Oracle은 대소문자를 구분하므로 조건절 작성 시 주의
  • 불필요한 권한 점검: 더 이상 사용하지 않는 권한은 회수 요청 고려

7. 결론

USER_TAB_PRIVS_RECD는 사용자 본인이 외부 객체에 대해 어떤 권한을 어떤 사용자로부터 받았는지를 명확하게 보여주는 뷰입니다. 오라클 보안과 권한 관리에서 ‘수신 권한’은 잠재적인 보안 허점을 의미할 수 있으므로, 이 뷰를 활용하여 주기적인 점검과 관리를 수행하는 것이 권장됩니다.

8. 출처

728x90