IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Oracle Fine-Grained Audit : apprendre à auditer une table utilisateur
Un billet de Fabien Celaia

Le , par Fabien Celaia

0PARTAGES

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

Une erreur dans cette actualité ? Signalez-nous-la !