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

Oracle Discussion :

Trigger ou audit pour récupérer le programme qui éxécute la requête


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut Trigger ou audit pour récupérer le programme qui éxécute la requête
    Bonjour,
    Je souhaiterai récupérer le programme exécutant une requête sur Oracle (Exel, Access, Appli Métier, ...). Je ne vois pas comment le faire via un trigger ou un audit.

    L'audit ne me ramènera que le select et je ne pourrai identifier le programme dans v$session. Le trigger ne peut se faire sur un select.

    A la rigueur je pourrai faire un trigger sur la connexion et récupérer dans v$session le type de programme mais je souhaiterai en plus compter le nombre de fois que la requête est lancée par ce programme.

    Des idées???

    Merci

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    le programme est dans Module et/ou Program de v$session.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    Bonjour,
    L'audit d'oracle est très bien mais à mon gout encore incomplet.
    Pour auditer, un select, je ne vois pas d'autres solutions que par l'audit.
    Il faut hélas le completer par un trigger on logon-logoff dans lequel tu rajoutera les infos manquantes. Tu pourras faire la jointure avec le sessionid. J'ai déjà eu ce genre de problèmes et c'est comme cela que je l'ai résolu en tout les cas.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Le problème est que je ne peux pas faire d'audit de tous les select qui passent sur la base. Il y en a trop.

    J'ai fait un trigger logon/logoff qui me récupère les infos dont j'ai besoin. Ce qu'il me manque c'est le nombre de fois qu'un select a été fait sur un application en particulier. Je pense qu'il va falloire que je fasse un job qui pointe sur v$sqlarea pour le nombre d'exécution.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Mes triggers logon/logoff fonctionnent bien et me ramènent un certains nombre d'informations intéressantes mais il me manque les select effectués par certaines applications. J'ai bien rajouté une requête qui récupère le select en cours de la personne mais le problème c'est que ce select est le select du trigger.

    Le gros soucis de l'audit est que l'on ne peut pas filtrer les select sur un programm particulier. Il y a des personne qui se connectent sur la base avec des programmes type excel et je souhaierai connaître les select qu'ils effectuent.

    J'ai bien regarder du coté de dbms_fga mais cela ne correspond pas à ce que je recherche.

    J'ai fait aussi un trigger sur la table sys.aud$ mais je récupère une erreur comme quoi je n'ai pas le droit de faire de trigger sur une table système.

    Des idées? Des solutions? Des pistes?

    Merci par avance.

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    Citation Envoyé par flonardi
    Le gros soucis de l'audit est que l'on ne peut pas filtrer les select sur un programm particulier. Il y a des personne qui se connectent sur la base avec des programmes type excel et je souhaierai connaître les select qu'ils effectuent.

    Bonjour,
    si tu cherches à tracer une appli, as tu essayé d'aciver une trace sur ton trigger on logon en fonction de l'appli?
    Le problème, c'est que si quelqu'un change le nom de l'appli, pas de trace!

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Je n'ai pas essayé mais si je fais ça, comment faire pour arêter la trace? Il faut que je fasse une arrêt de la trace au logoff ou la trace s'arête d'elle même à la fin de la session?

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    elle va s'arreter à la fin de la session.
    Par contre, le cout en perf ainsi qu'en place peut être non nul!
    Il faut en être conscient!

  9. #9
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Si vous êtes en 10g, le FGA est fait pour vous puisqu'il vous permet de surveiller qui fait quel type d'opérations (INSERT/SELECT/UPDATE/DELETE) et sur quels enregistrements.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    ce que je recherche, c'est quelle est la requête lancée par un programme de type excel/access et par qui.

    Par qui, je le sais, le programme je le connais, la requête, j'arrive à la récupérer au moment où elle est lancée en manuelle mais pas en auto via un trigger.

    Je pense que je vais faire un job temporairement qui va se lancer toutes les xx secondes et récupérer toutes les requêtes select quand le programme = 'excel ou access ou ...'

    Ou dans le trigger lancer l'audit sur une session?

  11. #11
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    Citation Envoyé par flonardi
    ce que je recherche, c'est quelle est la requête lancée par un programme de type excel/access et par qui.

    Par qui, je le sais, le programme je le connais, la requête, j'arrive à la récupérer au moment où elle est lancée en manuelle mais pas en auto via un trigger.

    Je pense que je vais faire un job temporairement qui va se lancer toutes les xx secondes et récupérer toutes les requêtes select quand le programme = 'excel ou access ou ...'

    Ou dans le trigger lancer l'audit sur une session?

    Pourquoi ne pas essayer la solution que je t'ai proposé?

  12. #12
    Nouveau membre du Club
    Inscrit en
    Novembre 2002
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 49
    Points : 37
    Points
    37
    Par défaut
    Parce que dans un premier temps, je recherche une solution qui mette les données en base. J'essaye de rajouter des infos qui me manque à perfstat et je voudrai interroger tout ça sous forme de requête plutôt que d'aller lire un fichier sur le serveur.

    De toute façon, je vais aussi essayer la tienne. Ca me permettra de me familiariser avec les traces.

Discussions similaires

  1. procédure pour récupérer un programme step5
    Par ricardpierre dans le forum Automation
    Réponses: 3
    Dernier message: 25/03/2022, 14h33
  2. Requête pour récupérer un id qui apparaît plusieurs fois
    Par Steph244211 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 18/12/2012, 11h26
  3. Réponses: 10
    Dernier message: 07/05/2010, 08h54
  4. Réponses: 4
    Dernier message: 24/11/2007, 13h15
  5. Enlever la gestion de debug pour les programmes qui plantent
    Par kev42100 dans le forum Visual C++
    Réponses: 3
    Dernier message: 11/10/2007, 21h49

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