본문 바로가기
Database/Oracle

[ORACLE] USER_TRIGGER_COLS : 트리거 감시 컬럼 완전 분석

by Papa Martino V 2025. 8. 9.
728x90

USER_TRIGGER_COLS : 트리거 감시 컬럼 완전 분석
[ORACLE] USER_TRIGGER_COLS

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. 출처

728x90