DBAtlas · 데이터베이스 운영 아틀라스

Unified Auditing 정책 생성, 조건부 활성화, 레코드 검토, 제거

Oracle보안

명령어

-- 1) Object + condition based policy (excluding the batch module):
CREATE AUDIT POLICY pol_customer_dml
  ACTIONS SELECT ON customer_app.customer,
          UPDATE ON customer_app.customer,
          DELETE ON customer_app.customer
  WHEN 'SYS_CONTEXT(''USERENV'',''MODULE'') NOT LIKE ''batch%'''
  EVALUATE PER SESSION;

-- 2) Privileged operations policy:
CREATE AUDIT POLICY pol_ddl_priv
  PRIVILEGES DROP ANY TABLE, ALTER SYSTEM
  ACTIONS DROP USER, ALTER USER, CREATE USER;

-- 3) Enable:
AUDIT POLICY pol_customer_dml EXCEPT customer_app;   -- everyone except the schema owner
AUDIT POLICY pol_ddl_priv WHENEVER SUCCESSFUL;
AUDIT POLICY ORA_LOGON_FAILURES WHENEVER NOT SUCCESSFUL;

-- 4) Which policy is enabled for whom?
SELECT policy_name, enabled_option, entity_name, success, failure
FROM   audit_unified_enabled_policies ORDER BY policy_name;
SELECT policy_name, audit_option, object_schema, object_name, audit_condition
FROM   audit_unified_policies WHERE policy_name LIKE 'POL_%';

-- 5) Records:
SELECT event_timestamp, dbusername, action_name, object_schema, object_name,
       return_code, unified_audit_policies, os_username, userhost
FROM   unified_audit_trail
WHERE  event_timestamp > SYSTIMESTAMP - INTERVAL '1' DAY
  AND  unified_audit_policies LIKE '%POL_%'
ORDER  BY event_timestamp DESC;
-- 19c (queued-write): EXEC DBMS_AUDIT_MGMT.FLUSH_UNIFIED_AUDIT_TRAIL;  (not in 23ai)

-- 6) Disable and remove:
NOAUDIT POLICY pol_customer_dml;
NOAUDIT POLICY pol_ddl_priv;
DROP AUDIT POLICY pol_customer_dml;
DROP AUDIT POLICY pol_ddl_priv;

하는 일

Unified Auditing은 모든 감사 레코드를 단일 trail(AUDSYS 스키마, UNIFIED_AUDIT_TRAIL)에 수집한다. 정책은 객체 작업, 시스템 권한 또는 작업 단위로 정의하며, WHEN 조건과 BY/EXCEPT 사용자 목록으로 노이즈를 줄인다.

사용 시점

민감 테이블 접근을 기록하고, 권한이 필요한 DDL과 권한 변경을 모니터링하며, 실패한 로그온 시도를 확인하고, 감사 요구 사항을 충족하기 위해.

주의

추가 라이선스가 없다. 바쁜 테이블의 SELECT를 감사하면 레코드가 많아지고 SYSAUX가 커진다. 조건과 EXCEPT로 범위를 좁히고 DBMS_AUDIT_MGMT(CLEAN_AUDIT_TRAIL, SET_LAST_ARCHIVE_TIMESTAMP)로 아카이브/정리를 예약한다. 활성화된 정책은 삭제할 수 없으므로(ORA-46361) 먼저 NOAUDIT를 실행한다. 정책 변경은 새 세션부터 적용된다. 19c는 기본적으로 mixed 모드로 실행되므로 기존 AUDIT_TRAIL 레코드도 기록될 수 있다.

DBAtlas에서 열기 →

관련 항목