728x90

1. USER_TAB_PRIVS_MADE란?
USER_TAB_PRIVS_MADE는 Oracle 데이터베이스에서 **현재 사용자가 다른 사용자에게 부여한 오브젝트 권한**을 확인할 수 있는 데이터 딕셔너리 뷰입니다. 조직 내에서 불필요하게 권한이 확산되는 것을 방지하거나, 특정 오브젝트에 대해 누가 어떤 권한을 부여했는지 추적할 때 유용하게 사용됩니다. 권한 부여 추적은 보안 감사, 컴플라이언스 대응, 개발환경의 무결성 유지 등 다양한 영역에서 핵심적인 요소입니다.
2. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| TABLE_NAME | 권한을 부여한 오브젝트 이름 |
| GRANTEE | 권한을 부여받은 사용자 |
| PRIVILEGE | 부여된 권한 종류 (SELECT, INSERT 등) |
| GRANTABLE | 수혜자가 다른 사용자에게 해당 권한을 부여할 수 있는지 여부 |
| TYPE | 오브젝트의 유형 (TABLE, VIEW 등) |
3. 실무 활용 예제
3.1. 내가 다른 사용자에게 부여한 모든 권한 확인
SELECT
GRANTEE,
TABLE_NAME,
PRIVILEGE,
GRANTABLE
FROM
USER_TAB_PRIVS_MADE;
3.2. SELECT 권한만 필터링
SELECT
GRANTEE,
TABLE_NAME
FROM
USER_TAB_PRIVS_MADE
WHERE
PRIVILEGE = 'SELECT';
3.3. 특정 사용자에게 부여한 권한 조회
SELECT
TABLE_NAME,
PRIVILEGE
FROM
USER_TAB_PRIVS_MADE
WHERE
GRANTEE = 'HR';
4. USER_TAB_PRIVS_MADE vs 관련 권한 뷰 비교
| 뷰 이름 | 설명 | 권한 주체 | 조회 대상 |
|---|---|---|---|
| USER_TAB_PRIVS | 내가 받은 권한 확인 | 수혜자 | 내가 부여받은 객체 권한 |
| USER_TAB_PRIVS_MADE | 내가 부여한 권한 확인 | 부여자 | 다른 사용자에게 부여한 객체 권한 |
| ALL_TAB_PRIVS_MADE | 모든 사용자가 부여한 권한 (내가 접근 가능한 경우) | 부여자 | 내가 소유하거나 부여 가능한 객체 권한 |
| DBA_TAB_PRIVS | 전체 권한 맵 확인 (DBA 전용) | 전체 사용자 | 모든 객체 권한 |
5. USER_TAB_PRIVS_MADE 활용 전략
- 보안 감사: 불필요하게 부여된 권한을 식별하고 회수 가능
- 운영 안전성: 테스트 환경에서 잘못된 권한 확산 여부 조기 파악
- 정책화: ‘권한 부여 원칙’ 수립 시 사용자별 권한 내역을 자동 리포팅
- 개발 협업: 협업 중인 사용자에게만 필요한 권한 부여 여부 확인
6. 권한 관리 시 주의사항
- 권한 남용 방지: GRANTABLE 옵션을 통해 재배포 여부를 신중히 결정
- 역할 기반 권한과 혼동 금지: 롤(Role)을 통한 권한 부여는 이 뷰에 포함되지 않음
- 철저한 기록 관리: 권한 부여/회수 이력을 주기적으로 백업
7. 결론
USER_TAB_PRIVS_MADE는 단순히 누군가에게 권한을 주었는지를 넘어서, 권한 정책이 실질적으로 어떻게 운영되고 있는지를 분석할 수 있는 강력한 도구입니다. 보안과 운영의 균형을 맞추기 위해 이 뷰를 주기적으로 확인하고, 필요 시 자동화된 권한 점검 절차를 마련하는 것이 바람직합니다.
8. 출처
- Oracle Corporation. Oracle Database Documentation
- Steven Feuerstein, 『Oracle PL/SQL Programming
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_TAB_SUBPARTITIONS : 서브 파티션 구조 완전 정복 (0) | 2025.08.09 |
|---|---|
| [ORACLE] USER_TAB_PRIVS_RECD : 수신된 오브젝트 권한 완전 분석 (0) | 2025.08.09 |
| [ORACLE] USER_TAB_PRIVS : 오브젝트 권한 관리의 핵심 뷰 완전 정복 (0) | 2025.08.09 |
| [ORACLE] USER_TAB_PARTITIONS : 오라클 파티셔닝 정보를 꿰뚫는 전략 가이드 (0) | 2025.08.09 |
| [ORACLE] USER_VIEWS 뷰로 사용자 정의 뷰 SQL 추적 및 최적화하기 (0) | 2025.08.08 |