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 :

[Oracle 8i] tracer un utilisateur


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut [Oracle 8i] tracer un utilisateur
    Bonjour à tous.

    Je souhaite tracer les actions d'un utilisateur dans Oracle. J'ai lu l'article sur Logminer qui correspond à ce que je veux.
    Mais je ne travaille pas avec une 9i mais une 8i (8.1.7)
    L'orsque j'essaie la méthode pour la 9i, il bloque sur la variable utl_file_dir.

    Quelqu'un peut-il m'aider ? Comment utiliser Logminer en 8i ?

  2. #2
    Membre régulier
    Inscrit en
    Février 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 97
    Points : 110
    Points
    110
    Par défaut
    L'utilisation de Logminer a ete sensiblement ameliorée et simplifée avec 9i. Ca reste possible sous 8i mais c'est pas aussi simple. Voila la doc:
    http://download-uk.oracle.com/docs/c.../doc/index.htm

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Pour donner un peu plus de détails, lorsque je tappe la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER system SET utl_file_dir='c:\temp\' SCOPE=spfile;
    J'obtiens le résultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    02095: Specified initialization parameter cannot be modified
    J'aimerais pouvoir modifier le fichier init.ora à la main, mais je n'ai aucune trace d'un fichier de ce nom.
    En réalité j'ai trouvé un fichier nommé : init{Nom de l'instance}.ora mais en ajoutant la ligne utl_file_dir=c:\temp\ rien n'a changé (apres reboot de l'instance bien entendu)

  4. #4
    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
    logminer pour tracer un utilisateur c'est un peu capilotracté comme méthode

    Pourquoi ne pas lancer une trace tout simplement ?

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par orafrance
    logminer pour tracer un utilisateur c'est un peu capilotracté comme méthode

    Pourquoi ne pas lancer une trace tout simplement ?
    certes ... et comment ???

    Je ne suis pas expert Oracle, ni même base de données. Donc je prend toutes les idées.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Présicion :

    Je souhaite connaitre toutes les actions effectuées par une application lors de sa connection à la base.
    Je ne sais pas si l'appli lance un script ou autre, et je souhaite donc une sorte de listing de toutes les actions effectuées des lors que le programme est lancé.

    Je connais les informations suivantes :
    Nom et Mot de passe de l'utilisateur utilisé par l'appli.
    Mdp sys/system etc.. de la base si besoin.
    Un peu oracle :p

  7. #7
    Membre régulier Avatar de Escandil
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2003
    Messages : 84
    Points : 70
    Points
    70

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Désolé mais je n'arrive pas non plus à le faire marcher, apres la ligne de commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL> oradebug event 10046 trace name context forever, level 8
    Ma fenetre SQL+ se fige et je n'ai plus la main

    J'aurais voulu essayer la methode SQL_TRACE à TRUE dans le init.ora, mais comme précisé plus haut, je ne l'ai toujours pas localisé

    Le détail du code employé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT spid 
    FROM v$process a, v$session b
    WHERE a.addr = b.paddr 
    AND sid = 10;
     
    oradebug setospid 2592
     => Oracle pid: 11, Windows thread id: 2592, image: ORACLE.EXE
     
    oradebug event 10046 trace name context forever, level 8
    ça plante aussi avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oradebug TRACEFILE_NAME
    PS : l'usage prolongé de contrario est nocif pour le vocabulaire courant .. comprenne qui pourra

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    :trouve: le fichier init.ora.

    J'ai ajouté le paramètre Redémarrage du serveur... connexion à SQL+... niet :

  10. #10
    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
    les traces sont dans le user_dump_dest

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Merci orafrance pour tes réponses.
    Mais j'ai peur d'être dépassé niveau compétence.
    Je détaille là où j'en suis :

    Oracle 8.1.7
    Connexion en SYS as SYSDBA
    but : tracer les requetes effectuées par un utilisateur.
    La méthode à employer semble donc être oradebug.

    Je récupère bien le spid de l'utilisateur qui m'intéresse.
    La commande suivante passe sans problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oradebug setospid 2961508
    Par contre, lorsque je lance l'ordre de trace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oradebug event 10046 trace name context forever, level 8
    la fenêtre SQL+ se bloque et rien ne se passe. Je n'ai pas de retour et je suis obligé de tuer le processus de SQL+.

    J'ai bien vérifié le répertoire des traces (user_dump_dest), mais je n'arrive pas à lancer la trace.

    Toute remarque, idée, suggestion est la bien venue, car là, je n'en puis plus.... En vous remerciant ....

  12. #12
    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
    Sur le serveur tu te connectes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    export ORACLE_SID=tabase
    sqlplus "/ as sysdba"
    c'est bien ça ?

  13. #13
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Je vais essayer de donner un maximum de détails.
    Voila la fenêtre complete de log à partir du moment ou je lance SQL+ (ma première action)

    Je précise qu'il s'agis d'un serveur XP.

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    SQL*Plus: Release 8.1.7.0.0 - Production on Ve Jul 8 10:12:35
     
    (c) Copyright 2000 Oracle Corporation.  All rights reserved.
     
     
    Connect  :
    Oracle8i Release 8.1.7.0.0 - Production
    JServer Release 8.1.7.0.0 - Production
     
    SQL> connect sys/********** as sysdba
    Connect.
    SQL> SELECT spid, sid
      2  FROM v$process a, v$session b
      3  WHERE a.addr = b.paddr;
     
    SPID             SID
    --------- ----------
    788                1
    888                2
    744                3
    1020               4
    1048               5
    1052               6
    2332               9
    1120               7
    944                8
    880               10
    3520              11
     
    11 ligne(s) slectionne(s).
     
    SQL> SELECT spid, sid
      2  FROM v$process a, v$session b
      3  WHERE a.addr = b.paddr;
     
    SPID             SID
    --------- ----------
    788                1
    888                2
    744                3
    1020               4
    1048               5
    1052               6
    2332               9
    1120               7
    944                8
    880               10
    3520              11
     
    SPID             SID
    --------- ----------
    2188              12
     
    12 ligne(s) slectionne(s).
     
    SQL> oradebug setospid 2188
    Oracle pid: 13, Windows thread id: 2188, image: ORACLE.EXE
    SQL> oradebug event 10046 trace name context forever, level 1
    A partir de là, le prompt passe à la ligne suivante et se fige.
    Le ctrl+C ne coupe pas le processus, et je doit terminer l'application (SQL+) comme un barbare pour reprendre la main.

  14. #14
    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
    et est ce qu'il te crée la trace quand même ?

  15. #15
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    Aucun fichier n'est créé dans le repertoire user_dump_dest.
    Je ne suis même pas sur qu'il lance la trace, j'ai l'impression que l'erreur apparait au mooment même ou il créé le fichier.

    En fait, cela pourrait expliquer que le probleme soit le même (plantage) lors de l'instruction : oradebug TRACEFILE_NAME .

    J'ai vérifier les droits d'écriture du répertoire sous XP, et cela ne devrais poser aucun problême.

  16. #16
    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
    étrange... bah le bon vieu SQL_TRACE fera peut-être l'affaire alors

  17. #17
    Membre à l'essai
    Inscrit en
    Mai 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    alors, va pour SQL_TRACE.

    Excuse-moi d'avance, mais Oracle n'étant pas mon terrain de prédilection (tu as du le remarquer), peux-tu me donner la méthode d'utilisation de SQL_TRACE :
    les ordres à passer, comment éditer les resultats, etc...

    PS: oui, je sais,

Discussions similaires

  1. Réponses: 30
    Dernier message: 26/11/2009, 09h33
  2. Réponses: 0
    Dernier message: 28/07/2009, 17h11
  3. Oracle 10 g ex utilisateur SCOTT
    Par jad-lak dans le forum Administration
    Réponses: 9
    Dernier message: 30/12/2008, 15h55
  4. [SQL2K5]Trigger DDL pour tracer DML utilisateur
    Par elsuket dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 13/09/2007, 05h43
  5. Tracer les utilisateurs
    Par valauga dans le forum Administration-Migration
    Réponses: 2
    Dernier message: 20/04/2007, 00h33

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