DBAtlas · Atlas d'exploitation des bases de données

Créer une politique Unified Auditing, l'activer sous condition, consulter les enregistrements, la supprimer

OracleSécurité

Commande

-- 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;

Ce que fait la commande

Unified Auditing collecte tous les enregistrements d'audit dans une piste unique (schéma AUDSYS, UNIFIED_AUDIT_TRAIL). Les politiques sont définies par action sur objet, privilège système ou action ; la condition WHEN et les listes d'utilisateurs BY/EXCEPT réduisent le bruit.

Quand l'utiliser

Pour enregistrer les accès aux tables sensibles, surveiller les DDL privilégiés et les changements de privilèges, voir les tentatives de connexion échouées et satisfaire les exigences d'audit.

Attention

Aucune licence supplémentaire. Auditer les SELECT sur des tables très sollicitées produit de nombreux enregistrements et fait grossir SYSAUX ; restreignez avec des conditions et EXCEPT, et planifiez l'archivage/le nettoyage avec DBMS_AUDIT_MGMT (CLEAN_AUDIT_TRAIL, SET_LAST_ARCHIVE_TIMESTAMP). Une politique activée ne peut pas être supprimée (ORA-46361) ; exécutez d'abord NOAUDIT. Les changements de politique prennent effet dans les nouvelles sessions. 19c fonctionne en mode mixte par défaut, donc des enregistrements AUDIT_TRAIL traditionnels peuvent aussi être écrits.

Ouvrir dans DBAtlas →

Voir aussi