Unified-Auditing-Policy anlegen, bedingt aktivieren, Einträge prüfen und entfernen
OracleSicherheitBefehl
-- 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;Was es tut
Unified Auditing sammelt alle Audit-Einträge in einem einzigen Trail (Schema AUDSYS, UNIFIED_AUDIT_TRAIL). Policies werden je Objektaktion, Systemprivileg oder Aktion definiert; die WHEN-Bedingung und BY-/EXCEPT-Benutzerlisten reduzieren das Rauschen.
Wann einsetzen
Um Zugriffe auf sensible Tabellen zu protokollieren, privilegierte DDL und Rechteänderungen zu überwachen, fehlgeschlagene Anmeldeversuche zu sehen und Audit-Anforderungen zu erfüllen.
Vorsicht
Keine Zusatzlizenz. Auditing von SELECT auf stark genutzten Tabellen erzeugt viele Einträge und lässt SYSAUX wachsen; schränke es mit Bedingungen und EXCEPT ein und plane Archivierung/Bereinigung mit DBMS_AUDIT_MGMT (CLEAN_AUDIT_TRAIL, SET_LAST_ARCHIVE_TIMESTAMP). Eine aktivierte Policy lässt sich nicht löschen (ORA-46361); führe zuerst NOAUDIT aus. Policy-Änderungen wirken in neuen Sessions. 19c läuft standardmäßig im Mixed Mode, daher können auch klassische AUDIT_TRAIL-Einträge geschrieben werden.
Verwandte Einträge
- TDE-Keystore anlegen, öffnen, Master Key setzen und sichern (ab 19c)
- Tablespaces mit TDE verschlüsseln (neu und bestehend, online/offline)
- Zugriffs-Policy auf Zeilenebene mit VPD hinzufügen (DBMS_RLS)
- Profil für Passwortrichtlinien anlegen und Benutzern zuweisen
- Ungenutzte Privilegien mit Privilege Analysis finden