728x90

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. 출처
- Oracle Corporation. Oracle Database Reference
- Joel R. Kallman, 『Oracle Security Best Practices』
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_TRIGGERS : 오라클 트리거의 핵심 구조와 실전 활용 (0) | 2025.08.09 |
|---|---|
| [ORACLE] USER_TAB_SUBPARTITIONS : 서브 파티션 구조 완전 정복 (0) | 2025.08.09 |
| [ORACLE] USER_TAB_PRIVS_MADE : 사용자가 부여한 오브젝트 권한 추적 가이드 (0) | 2025.08.09 |
| [ORACLE] USER_TAB_PRIVS : 오브젝트 권한 관리의 핵심 뷰 완전 정복 (0) | 2025.08.09 |
| [ORACLE] USER_TAB_PARTITIONS : 오라클 파티셔닝 정보를 꿰뚫는 전략 가이드 (0) | 2025.08.09 |