오라클 데이터베이스에서 보안을 효과적으로 관리하려면 권한의 부여 내역을 명확히 파악해야 합니다. ALL_COL_PRIVS_MADE 뷰는 사용자가 직접 다른 사용자에게 부여한 컬럼 단위 권한 정보를 제공하는 시스템 뷰로, 보안 감사 및 권한 정리 작업에 매우 중요합니다.
1. ALL_COL_PRIVS_MADE란 무엇인가?
ALL_COL_PRIVS_MADE
는 현재 사용자(또는 연결된 스키마)가 다른 사용자에게 부여한 컬럼 권한을 추적할 수 있게 해주는 Oracle의 데이터 딕셔너리 뷰입니다. 이 뷰는 단순한 권한 목록이 아니라, ‘누가’, ‘무엇을’, ‘누구에게’ 부여했는지를 명확히 보여줍니다.
2. 뷰의 주요 컬럼 설명
컬럼명 | 설명 |
---|---|
GRANTEE | 권한을 부여받은 사용자 또는 역할 |
OWNER | 권한을 부여한 객체의 소유자 |
TABLE_NAME | 대상 테이블의 이름 |
COLUMN_NAME | 권한이 적용된 컬럼 이름 |
PRIVILEGE | 부여된 권한 유형 (예: SELECT, UPDATE) |
GRANTABLE | 권한의 재부여 가능 여부 (YES/NO) |
3. 실무 활용 예제
다음은 현재 사용자가 부여한 컬럼 권한 내역을 조회하는 SQL 예시입니다.
SELECT * FROM ALL_COL_PRIVS_MADE WHERE GRANTEE = 'USER_B';
이 쿼리는 USER_B에게 부여된 컬럼 권한 중, 현재 사용자가 직접 부여한 권한만 보여줍니다. 실무에서 감사 로깅이나 권한 회수 시 필수적입니다.
4. ALL_COL_PRIVS_MADE와 유사 뷰 비교
비슷한 권한 관련 뷰들과의 차이를 비교해보면 다음과 같습니다.
뷰 이름 | 설명 | 권한 범위 |
---|---|---|
ALL_COL_PRIVS | 접근 가능한 컬럼 권한 전체 | 자신과 타인에게 부여된 전체 권한 |
ALL_COL_PRIVS_MADE | 사용자가 직접 부여한 권한 | 내가 타인에게 준 컬럼 권한 |
ALL_COL_PRIVS_RECD | 사용자가 직접 받은 권한 | 타인이 나에게 준 컬럼 권한 |
5. 실무 시나리오에서의 사용
- 감사 대응: 보안 감사 요청 시, 권한을 어떤 사용자에게 부여했는지를 명확히 제시 가능
- 권한 정리: 불필요하게 부여된 권한 회수 작업 시 용이
- 권한 상속 추적: GRANTABLE이 YES인 경우, 그 권한이 또 다른 사용자에게 전달될 가능성을 예측 가능
6. 권한 회수 예제
ALL_COL_PRIVS_MADE의 정보를 바탕으로 다음과 같이 권한을 회수할 수 있습니다.
REVOKE SELECT (SSN) ON EMPLOYEE FROM USER_B;
이는 USER_B에게 부여한 SSN 컬럼의 SELECT 권한을 회수하는 구문입니다.
7. 권장 보안 정책 수립 팁
- 정기 점검 자동화: 정기적으로 ALL_COL_PRIVS_MADE 결과를 로그로 저장해 비교 분석
- 재부여 여부 제한: GRANTABLE 옵션을 NO로 설정하여 권한 전파 차단
- 분산 관리 방지: 특정 관리자가 아닌 일반 사용자에게 권한을 부여하지 않도록 제한
8. 결론
ALL_COL_PRIVS_MADE
뷰는 단순히 정보를 보여주는 것 이상의 역할을 합니다. DB 운영자의 입장에서 권한의 흐름을 파악하고, 보안 정책을 강화하는 데 있어 핵심 도구로 작용합니다. 특히, GDPR 및 국내 개인정보보호법과 같은 규제가 강화된 시대에서는 사용자가 타인에게 직접 부여한 권한의 기록을 명확히 파악할 수 있는 시스템 뷰는 필수적이라 할 수 있습니다.
9. 참고 자료
- Oracle Database 21c Data Dictionary Views – Oracle 공식 문서
- Oracle SQL Language Reference
- DB 실무 운영 정책 사례 (2021~2024)
'Database' 카테고리의 다른 글
[Oracle] 오라클 ALL_CONTEXT 완전 정복 : 컨텍스트 기반 보안 제어 핵심 가이드 (0) | 2025.06.20 |
---|---|
[Oracle] 오라클 ALL_COL_PRIVS_RECD 완전 가이드 : 내가 받은 컬럼 권한 한눈에 파악하기 (0) | 2025.06.20 |
[Oracle] 오라클 ALL_COL_PRIVS 뷰 완벽 가이드 : 실무에 바로 적용하는 보안 권한 조회법 (0) | 2025.06.20 |
[Oracle] 오라클 ALL_COLL_TYPES 완전 분석 - 컬렉션 타입 구조 이해와 활용 (0) | 2025.06.19 |
[Oracle] 오라클 ALL_CLUSTER_HASH_EXPRESSIONS 완벽 가이드 - 해시 클러스터 구조 해부 (0) | 2025.06.19 |