Audit Trail
L'écran Audit Trail est la vue en-tête de l'audit au niveau base. Une ligne par (Application, Date de transaction, Opération, Schéma, Table, Utilisateur). Chaque ligne compte les enregistrements touchés par une opération auditée sur une application connectée — INSERT, UPDATE, DELETE ou TRUNCATE.
C'est le complément de Transactions (qui capte l'usage applicatif) avec les mutations bas niveau — exactement le type de trace attendu par les contrôles de type SOX.
Vue d'ensemble
Objectif de l'écran
Pour chaque mutation auditée au niveau base sur une application connectée :
- L'en-tête. Date, type d'opération, schéma, table, utilisateur, nombre de lignes. De quoi identifier l'opération sans encore lire chaque colonne modifiée.
- Signal de volume. Nombre met en évidence les mises à jour et suppressions de masse — entrée classique d'une revue SOX.
- Point d'entrée vers le détail. Un clic ouvre l'écran Audit Lookup avec les valeurs avant / après par colonne.
Colonnes
| Colonne | Source | Ce qu'on y lit |
|---|---|---|
| Application ID | AUD_APPS_ID — identifiant de l'application. | Application connectée. |
| Date transaction | AUD_DT_TRANSACTION — horodatage. | Quand l'opération a frappé la base. |
| Opération | AUD_OPERATION — INSERT / UPDATE / DELETE / TRUNCATE. | Ce qui a été fait. |
| Schéma | AUD_SEG_OWNER — schéma de base. | Localisation de la table. |
| Table | AUD_SEG_NAME — nom de table. | Objet touché. |
| Utilisateur | AUD_USER — compte base. | Auteur de l'opération au niveau base. |
| Nombre | AUD_COUNT — nombre de lignes affectées. | Volume de l'opération. |
Diff au niveau colonne — lignes dépliables
Chaque ligne se déplie via le chevron natif à gauche sur un diff AVANT / APRÈS au niveau colonne. Les valeurs sont reconstruites à la demande depuis la commande DML stockée (AUDIT_TRAIL_QUERY) — le diff est calculé quand on déplie, pas stocké en double. Conséquences :
- La table de valeurs peut être purgée pour récupérer de l'espace, le diff se reconstruit tout de même depuis le DML.
- Seules les colonnes changées sont surlignées ; les inchangées apparaissent estompées pour le contexte (et peuvent être masquées via la barre d'outils de la ligne).
INSERTmontre toutes les valeurs persistées en APRÈS ;DELETEles montre en AVANT ;UPDATEmontre les deux, avec les cellules changées entourées.
La vue synthèse remplace l'ancienne grille imbriquée — les sous-lignes dépliables sont natives, la navigation clavier et le redimensionnement des colonnes se comportent comme dans le reste de la grille.
Périmètre d'audit — onglet Colonnes auditées
Chaque application connectée décide de la quantité indexée par table dans la table des valeurs via l'onglet Colonnes auditées de l'éditeur d'application. Trois modes possibles :
| Règle posée sur la table | Effet |
|---|---|
| Aucune ligne pour la table | Défaut — toutes les colonnes de la ligne sont indexées dans AUDIT_TRAIL_VALUES. |
| Une ou plusieurs lignes de colonnes | Seules les colonnes listées sont indexées. Les autres apparaissent quand même dans le diff à la demande (reconstruit depuis AUDIT_TRAIL_QUERY), simplement pas cherchables dans la table de valeurs. |
Une seule ligne *SQL* | Journal seulement — la commande DML complète reste dans AUDIT_TRAIL_QUERY et rien n'est indexé dans AUDIT_TRAIL_VALUES. À poser sur les tables les plus larges où la recherche colonne par colonne n'a pas d'intérêt. |
La commande DML complète est toujours conservée dans AUDIT_TRAIL_QUERY — rien n'est perdu, quel que soit le mode retenu. C'est le levier pour contenir le volume de la table de valeurs sur les tables larges (une ligne F0911 indexerait sinon des dizaines de colonnes par opération).
Jobs de purge et de reconstruction
Deux jobs Nomaflow encadrent cet écran pour tenir l'historique en forme :
| Job | Ce qu'il fait |
|---|---|
| Purge de la piste d'audit | Supprime les lignes de AUDIT_TRAIL_HEADER (et leurs valeurs par cascade) plus anciennes qu'une date de coupe. La commande DML, l'en-tête et ses valeurs disparaissent ensemble — c'est ce qui applique une politique de rétention. |
| Reconstruction des valeurs | Ré-analyse AUDIT_TRAIL_QUERY sur une plage de dates choisie et réalimente AUDIT_TRAIL_VALUES depuis le DML brut. Utile après avoir élargi la règle Colonnes auditées d'une table (les lignes historiques reçoivent les colonnes fraîchement listées sans recollecte côté source), ou après une purge des valeurs. |
Les deux jobs tournent sous Nomaflow avec suivi dans le log de run, et traitent le périmètre standard de l'audit (connecteurs et applications).
Conseils et bonnes pratiques
- Filtrer sur Opération = DELETE sur la période d'audit — chaque suppression doit être justifiable.
- Déplier la ligne avant d'ouvrir Audit Lookup. Pour un diff sur un seul enregistrement, la ligne dépliée montre déjà chaque colonne changée ; Audit Lookup est l'écran de descente pour un
UPDATEsur plusieurs lignes, quand on veut parcourir chaque enregistrement touché. - Filtrer sur un Utilisateur pour retrouver l'activité base d'un compte précis. Comparer à la ligne Transactions correspondante pour savoir si la modification est passée par l'application ou directement par la base.
- Un Nombre sortant de la fourchette habituelle sur une même table mérite une question à l'équipe DBA.
- Réduire les tables larges via Colonnes auditées. Sur une table de type
F0911, ne lister que les colonnes qu'on cherchera un jour — la table de valeurs reste petite et le diff colonne par colonne montre tout depuis le DML reconstitué. - Planifier la purge en accord avec la politique de rétention ; enchaîner Reconstruction des valeurs après avoir élargi le périmètre d'audit d'une table pour combler les valeurs qui manqueraient sinon.
- L'écran est en lecture seule pour tous sauf un administrateur. Des entrées d'écriture existent (
audit_trail_post/audit_trail_put) mais sont destinées au pipeline d'ingestion Nomasx-1, pas à une saisie manuelle.