
Oracle 데이터베이스에서 보안(Security)과 접근 제어는 시스템 신뢰성을 유지하기 위해 반드시 고려해야 할 핵심 요소입니다. 특히, 객체 권한 부여 내역을 투명하게 관리하는 것은 외부 침입 방지와 내부 감사에 매우 중요합니다. 이러한 권한 관리를 돕는 뷰 중 하나가 바로 ALL_TAB_PRIVS_MADE 입니다. 이번 글에서는 이 뷰의 구조와 실무에서의 활용 전략을 전문가 시각으로 분석합니다.
ALL_TAB_PRIVS_MADE 뷰란?
ALL_TAB_PRIVS_MADE 뷰는 현재 사용자가 다른 사용자에게 부여한 객체 권한에 대한 정보를 제공합니다. 즉, 자신이 소유한 테이블, 뷰, 시퀀스 등 데이터베이스 객체에 대해 어떤 권한을 누구에게 부여했는지를 한눈에 파악할 수 있도록 설계되었습니다.
왜 중요한가?
불필요하거나 과도한 권한 부여는 데이터 무결성 훼손과 보안 사고로 이어질 수 있습니다. ALL_TAB_PRIVS_MADE 뷰를 활용하면 부여된 권한을 주기적으로 검토하고, 필요 시 권한을 회수(REVOKE)하여 보안을 강화할 수 있습니다.
주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| GRANTOR | 권한을 부여한 사용자 |
| GRANTEE | 권한을 부여받은 사용자 |
| TABLE_SCHEMA | 객체가 속한 스키마 |
| TABLE_NAME | 권한이 부여된 객체 이름 |
| PRIVILEGE | 부여된 권한 유형 (SELECT, INSERT 등) |
| GRANTABLE | 부여받은 권한을 다른 사용자에게 재부여할 수 있는지 여부 |
활용 예제
예를 들어, 특정 사용자가 부여한 권한 내역을 모두 조회하려면 아래와 같은 쿼리를 사용할 수 있습니다.
SELECT GRANTEE, TABLE_NAME, PRIVILEGE, GRANTABLE
FROM ALL_TAB_PRIVS_MADE
WHERE GRANTOR = 'HR';
이 결과를 통해 권한 사용 현황을 점검하고, 불필요한 권한은 즉시 회수하는 조치를 취할 수 있습니다.
비슷한 뷰와의 비교
| 항목 | ALL_TAB_PRIVS_MADE | ALL_TAB_PRIVS_RECD |
|---|---|---|
| 정보 범위 | 내가 부여한 권한 정보 | 내가 부여받은 권한 정보 |
| 주요 활용 | 권한 부여 관리 및 감사 | 접근 가능 객체 확인 |
| 주요 사용자 | DBA, 객체 소유자 | 권한 수혜자, DBA |
실무 활용 전략
- 정기 감사 수행: ALL_TAB_PRIVS_MADE 뷰를 활용해 정기적으로 권한 부여 내역을 검토하고, 보안 정책 준수를 확인합니다.
- 권한 재설계: 최소 권한 원칙(Least Privilege Principle)에 따라 불필요한 권한은 즉시 회수(REVOKE)하여 보안을 강화합니다.
- 감사 리포트 자동화: ALL_TAB_PRIVS_MADE 뷰 데이터를 기반으로 주간·월간 감사 리포트를 자동 생성하여 관리팀에 공유할 수 있습니다.
활용 시 주의사항
- 권한 회수 시, 의존성 있는 다른 사용자나 응용 프로그램에 영향이 있을 수 있으므로, 사전에 충분한 분석이 필요합니다.
- Oracle 버전 및 패치 수준에 따라 컬럼 및 기능이 달라질 수 있으므로 최신 문서를 참고해야 합니다.
- 다수의 권한 변경 시, 스크립트 기반으로 자동화하고 변경 이력을 철저히 기록하는 것이 좋습니다.
결론
ALL_TAB_PRIVS_MADE 뷰는 Oracle 데이터베이스에서 객체 권한 관리의 투명성을 보장하고, 보안을 강화하는 데 핵심적인 역할을 합니다. 이를 활용하면 권한 부여 내역을 체계적으로 관리할 수 있으며, 외부 감사나 내부 보안 정책 검토 시 강력한 근거 자료로 활용할 수 있습니다. DBA와 보안 담당자라면 반드시 숙지하고 활용해야 할 필수 뷰입니다.
출처: Oracle Database Security Guide, Oracle 19c/21c Reference Manual, DBA 실무 경험 기반 분석 자료.
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] ALL_TAB_SUBPARTITIONS 뷰 심층 분석과 실무 활용 전략 (0) | 2025.07.05 |
|---|---|
| [ORACLE] ALL_TAB_PRIVS_RECD 뷰 심층 분석과 실무 활용 전략 (0) | 2025.07.05 |
| [ORACLE] ALL_TAB_PARTITIONS 뷰 심층 분석과 실무 활용 전략 (0) | 2025.07.04 |
| [ORACLE] ALL_TAB_MODIFICATIONS 뷰 심층 분석과 실무 활용 전략 (0) | 2025.07.04 |
| [ORACLE] ALL_TAB_HISTOGRAMS 뷰 심층 분석과 실무 활용 전략 (0) | 2025.07.04 |