Bonjour
J'ai besoin de créer un tigger (Oracle 10g) qui permet de capturer la moindre requête SQL lancée par utilisateur donné.
Comment faire ?
Merci
Bonjour
J'ai besoin de créer un tigger (Oracle 10g) qui permet de capturer la moindre requête SQL lancée par utilisateur donné.
Comment faire ?
Merci
dans ce cas t'as plus vite fait de mettre la base en trace mais gare aux perfs
il n'existe pas de trigger pour les SELECT. Outre le TRACING, que tu peux activer pour cet utilisateur (--> DBMS_MONITOR), il y a la commande AUDIT qui peut t'aiderEnvoyé par medba
tu peux aussi consulter V$SQL
Grâce au package DBMS_FGA (par défaut c’est une propriété de sys dba)
Il faut au préalable ajouter une police FGA avec le schéma, la table et éventuellement les colonnes à surveiller :
exec dbms_fga.add_policy (object_schema=>'MON_SCHEMA',object_name=>'MA_TABLE_CLIENT',policy_name=>'Accès_aux_clients',audit_column => 'CHAMP_Nom_Client');
A partir de ce moment si quelqu’un fait un select sur CHAMP_Nom_Client', on retrouvera sa trace dans la table dba_fga_audit_trail.
Si on veut supprimer cette police il suffit de faire :
exec dbms_fga.drop_policy (object_schema=>'MON_SCHEMA',object_name=>'MA_TABLE_CLIENT’,policy_name=>'Accès_aux_clients');
Ce package accepte d’autres paramètres, comme par exemple une procédure stockée déclenchée par le select, ce qui revient à faire un trigger sur un select.
je ne connaissais pas ça... c'est pas mal du tout
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager