Voir le flux RSS

Fabien Celaia

[Actualité] Fine Grained Audit : auditer une table utilisateur

Noter ce billet
par , 13/11/2017 à 10h32 (119 Affichages)
Introduction

Dans la majeure partie des bases de données, un audit fin d'une table utilisateur se fait généralement à coup de déclencheurs (création d'une table de journal, création des triggers...)... et toutes les actions d'une base (le SELECT par exemple) de déclenchent pas forcément un déclencheur. Dès Oracle 10, le Fine Grained Audit (FGA) offre une alternative élégante et peu coûteuse pour ce type de tâche.

Configurer le fine grained audit

Cela se passe assez aisément à l'aide du package idoine, ou le statement policy détermine l'action à auditer... select, insert, update ou delete. Si nécessaire, reportez-vous à la documentation du package DBMS_FGA.ADD_POLICY : il y a moyen de filtrer encore plus finement, notamenent en utilisant l'option audit_condition.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
exec DBMS_FGA.ADD_POLICY (     object_schema => 'MonSchema', 
   object_name => 'MaTable', 
   policy_name => 'fga_MaTable_S', 
   enable => TRUE, 
   statement_types => 'SELECT'
);
Visualiser les modifications

Les lignes d'audit remplissent la table sys.dba_fga_audit_trail. Prenez garde à ne pas auditer des actions trop importantes (par exemple un update massif sur de grosses tables) au risque de saturer le tablespace système sous-jacent.
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
select DB_USER, extended_timestamp, SQL_TEXT
from dba_fga_audit_trail
where object_name='MaTable'
order by extended_timestamp
Visualiser les polices actives

Même table pour déterminer ce que vous êtes en train d'auditer
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select distinct policy_name, object_name, object_schema
FROM dba_fga_audit_trail ;
Supprimer l'audit

L'arrêt de l'audit est une chose... encore faut-il ne pas oublier de purger la table contenant les données
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
exec DBMS_FGA.DROP_POLICY
   object_schema => 'monSchema',  
object_name => 'MaTable', 
   policy_name => 'FGA_MATABLE_S'
);
 
-- En tant que SYSDBA
delete dba_fga_audit_trail 
where object_name='MaTable' AND ...

Source

http://www.orafaq.com/wiki/DBMS_FGA
http://www.oracle.com/technetwork/ar...tn-082646.html

Envoyer le billet « Fine Grained Audit : auditer une table utilisateur » dans le blog Viadeo Envoyer le billet « Fine Grained Audit : auditer une table utilisateur » dans le blog Twitter Envoyer le billet « Fine Grained Audit : auditer une table utilisateur » dans le blog Google Envoyer le billet « Fine Grained Audit : auditer une table utilisateur » dans le blog Facebook Envoyer le billet « Fine Grained Audit : auditer une table utilisateur » dans le blog Digg Envoyer le billet « Fine Grained Audit : auditer une table utilisateur » dans le blog Delicious Envoyer le billet « Fine Grained Audit : auditer une table utilisateur » dans le blog MySpace Envoyer le billet « Fine Grained Audit : auditer une table utilisateur » dans le blog Yahoo

Mis à jour 13/11/2017 à 16h55 par Fabien Celaia

Catégories
SGBD , Oracle

Commentaires

  1. Avatar de fouedgr
    • |
    • permalink
    Merci pour cet artcile