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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

logging et triggers


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut logging et triggers
    Bonjour tout le monde ,

    actuellement j'ai une base de donness oracle sur laquelle je veux logger les select update et delete(DML). en utilisant la vue v$sql parfois je vois les statements(colonne sql_text) parfois non. j'ai bcp cherché (trcsess et tkprof aussi) mais je me suis la meilleur façon c'est d'ecrire des triggers qui insere le texte de l'instruction sql qui l'a ppelé ds une table. justement le probleme c'est comment je peux obtenir ce texte la à l'interieur du trigger ?? MErci de m'aider.


    merci

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu ne peux pas par des triggers.
    Recherche AUDIT, tu devrais trouver des sujets déjà postés à ce sujet.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut rebonjour
    j ai essayé avec audit mais sans succes . pouvez vous me donner un lien svp .

    MErci

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Il est possible avec Oracle 9i ou 10g de récupérer le code SQL de l'instruction qui déclenche un trigger grâce aux attributs des événements serveur qui sont aussi utilisables par les triggers INSERT, UPDATE et DELETE sur des tables:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    dev> drop table tx;
     
    Table dropped.
     
    dev>
    dev> create table tx (x varchar2(100));
     
    Table created.
     
    dev>
    dev> create or replace trigger ttx
      2  after insert on tx
      3  for each row
      4  declare
      5  sql_text ora_name_list_t;
      6  v_stmt varchar2(2000);
      7  n integer;
      8  begin
      9  n := ora_sql_txt(sql_text);
     10  for i in 1..n loop
     11   v_stmt := v_stmt || sql_text(i);
     12  end loop;
     13  dbms_output.put_line('SQL: ' || v_stmt);
     14  end;
     15  /
     
    Trigger created.
     
    dev> show errors
    No errors.
    dev>
    dev> set serveroutput on
    dev>
    dev> insert into tx values ('Ca marche');
    SQL: insert into tx values ('Ca marche')
     
    1 row created.
     
    dev>
    dev>
    dev> exit
    Pour utiliser l'audit, voir le Security Guide.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut merci
    merci bcp à vous tous.j utiliserai cette solution au cas ou l'audit ne marche pas.en fait, j'avais mis le audit_trail=true et apres j'ai mis : AUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE by tata. tata est l'utilisateur avec lequel je me log. le problème c'est que quand je regarde la table sys.aud$ ,colonne sql_text je ne trouve rien du tout,c null en plus quand je fé un select sur une table en utilisateur ,je reviens vers sys.aud$ je ne vois aucune ligne de plus ui a été ajouté. est ce que vous avez une explication svp.

    Cordialement

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Quelle est la version d'Oracle utilisée ?

    audit_trail=true
    ne veut rien dire d'après Oracle® Database Reference 10g Release 2 (10.2)
    Quelle est la véritable valeur de ce paramètre ?

    Pour avoir le code SQL des instructions auditées, il faut avoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    audit_trail=db, extended

Discussions similaires

  1. Trigger SQL Log Update d'une colonne
    Par lenny32 dans le forum Développement
    Réponses: 4
    Dernier message: 13/08/2012, 13h55
  2. Trigger et log différent
    Par lenoil dans le forum PL/SQL
    Réponses: 1
    Dernier message: 10/03/2011, 21h26
  3. trigger, erreur et log
    Par MuadDib_CH dans le forum Développement
    Réponses: 22
    Dernier message: 18/09/2010, 10h25
  4. Trigger sur table de log pour statistiques
    Par kalagann dans le forum MySQL
    Réponses: 1
    Dernier message: 26/11/2009, 22h09
  5. 10g/datapump/export schema et trigger log on/off
    Par URIOS dans le forum Import/Export
    Réponses: 7
    Dernier message: 03/04/2009, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo