728x90

1. USER_TRIGGER_COLS란?
USER_TRIGGER_COLS는 Oracle 데이터베이스에서 **트리거가 감시하는 특정 컬럼(Column)** 정보를 제공하는 데이터 딕셔너리 뷰입니다. 이 뷰는 트리거가 어떤 컬럼 변경에 반응하도록 설계되었는지를 파악할 수 있어, 보안 로직, 감사 로직, 성능 분석에 매우 중요한 역할을 합니다. 특히 BEFORE UPDATE OF 컬럼과 같이 특정 컬럼에 한해 트리거가 실행되도록 구성된 경우, USER_TRIGGERS 뷰만으로는 그 감시 범위를 파악하기 어려우므로 USER_TRIGGER_COLS가 필요합니다.
2. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| TRIGGER_NAME | 해당 트리거의 이름 |
| TABLE_NAME | 트리거가 적용되는 테이블 이름 |
| COLUMN_NAME | 트리거가 감시하는 컬럼명 |
3. 실전 활용 예제
3.1. 현재 사용자가 소유한 컬럼 기반 트리거 목록 확인
SELECT
TRIGGER_NAME,
TABLE_NAME,
COLUMN_NAME
FROM
USER_TRIGGER_COLS;
3.2. 특정 트리거가 감시하는 컬럼 확인
SELECT
COLUMN_NAME
FROM
USER_TRIGGER_COLS
WHERE
TRIGGER_NAME = 'TRG_EMP_SALARY_AUDIT';
3.3. 특정 테이블에 대해 감시 중인 컬럼별 트리거 조회
SELECT
TRIGGER_NAME,
COLUMN_NAME
FROM
USER_TRIGGER_COLS
WHERE
TABLE_NAME = 'EMPLOYEES';
4. USER_TRIGGER_COLS vs USER_TRIGGERS 비교
| 뷰 이름 | 역할 | 제공 정보 | 적용 대상 |
|---|---|---|---|
| USER_TRIGGERS | 트리거 정의 전체 | 이벤트, 실행 시점, PL/SQL 본문 등 | 트리거 자체 |
| USER_TRIGGER_COLS | 트리거의 컬럼 감시 정보 | 감시 대상 컬럼명 | 컬럼 레벨 감시 트리거 |
5. USER_TRIGGER_COLS 활용 전략
- 정밀 감사 로그 설계: 컬럼 변경 감지를 통한 핵심 필드 감사 처리
- 보안 정책 수립: 민감 정보 컬럼(예: 급여, 등급) 변경 여부 실시간 감지
- 성능 분석: 빈번한 컬럼 변경에 따른 트리거 호출 최적화
- 자동화 리포트: 컬럼별 트리거 감시 매트릭스 작성 및 시각화
6. 주의사항
- UPDATE OF에만 해당: 이 뷰는
UPDATE OF COLUMN트리거에만 적용되며, 전체 행 감시 트리거는 제외됨 - 컬럼 명 CASE 민감: 오라클은 기본적으로 대문자로 저장하므로 쿼리 시 주의
- 동일 트리거에 여러 컬럼: 트리거 하나가 여러 컬럼을 감시하는 경우 다수 행으로 반환
7. 결론
USER_TRIGGER_COLS는 트리거가 감시하는 컬럼 수준의 정보를 제공함으로써, 단순한 트리거 정의를 넘어 정밀한 데이터 변경 감지 및 감사 로직 구현에 핵심적인 역할을 합니다. 특히 데이터 무결성과 보안이 중요한 시스템에서는 해당 뷰를 적극적으로 활용하여 변경 감시 범위를 명확히 정의하고 관리하는 것이 바람직합니다.
8. 출처
- Oracle Corporation. Oracle Database Reference
- Tom Kyte, 『Expert Oracle Architecture』
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_TYPES : 사용자 정의 객체 타입 완전 분석 가이드 (0) | 2025.08.09 |
|---|---|
| [ORACLE] USER_TS_QUOTAS : 사용자 테이블스페이스 할당량 진단과 관리 전략 (0) | 2025.08.09 |
| [ORACLE] USER_TRIGGERS : 오라클 트리거의 핵심 구조와 실전 활용 (0) | 2025.08.09 |
| [ORACLE] USER_TAB_SUBPARTITIONS : 서브 파티션 구조 완전 정복 (0) | 2025.08.09 |
| [ORACLE] USER_TAB_PRIVS_RECD : 수신된 오브젝트 권한 완전 분석 (0) | 2025.08.09 |