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

SQL Oracle Discussion :

Trouver le user qui appelle une vue


Sujet :

SQL Oracle

  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut Trouver le user qui appelle une vue
    Bonjour,

    J'aurai voulu savoir s'il était possible de récupérer le user d'une personne qui appelle une vue. Sachant que cette vue peut être appelé par plusieurs personnes en même temps ?

    J'ai trouvé quelque chose dans la FAQ, mais je ne sais pas si cela sera suffisant ???
    Quand pensez-vous ?


  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Tu veux récupérer ça en direct ?

    Je sens que c'est pas ce que tu cherches, mais en faisant la jointure entre les vues v$sqltext et v$session, tu peux filtrer en parsant SQL_TEXT.
    (basiquement avec SQL_TEXT like '%TAVUE%', et si tu veux te faire mal, avec des regexp )...

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Effectivement cela ne correspond pas à mon besoin.
    Je voudrai connaitre le user de la personne qui appelle la vue ???

    Quelqu'un a-t-il une idée ?

  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
    Points : 3 597
    Points
    3 597
    Par défaut
    La façon la plus sûre d'avoir cette information est d'utiliser l'audit avec la commande SQL AUDIT:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    alter system set audit_trail=db scope=spfile;
    audit select on test.v by access;
    on retrouve les utilisations de la vue avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select username, action_name, obj_name from dba_audit_trail;

  5. #5
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par pifor Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select username, action_name, obj_name from dba_audit_trail;
    Quand j'exécute ce code cela ne me donne rien, alors que j'exécute une vue.

    Citation Envoyé par pifor Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    alter system set audit_trail=db scope=spfile;
    audit select on test.v by access;
    Mais cette partie du code, je dois le mettre où ???

  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
    Points : 3 597
    Points
    3 597
    Par défaut
    Il faut faire les choses dans l'ordre. D'abord configurer l'audit ce qui se fait une seule fois. ALTER SYSTEM nécessite les droits DBA et même SYSDBA car le paramètre audit_trail est un paramètre statique de l'instance (=> il faut redémarrer l'instance pour qu'il soit pris en compte):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER system SET audit_trail=db scope=spfile;
    audit SELECT ON test.v BY access;
    et ensuite interroger l'audit trail lorsqu'on veut savoir qui fait quoi sur les objets ou actions audités:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT username, action_name, obj_name FROM dba_audit_trail;

  7. #7
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    [QUOTE=pifor;3870667]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER system SET audit_trail=db scope=spfile;
    audit SELECT ON test.v BY access;
    Mais ce code doit être saisi dans Oracle ???
    Excuse moi, mais je débute seul avec Oracle !!!

  8. #8
    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
    Points : 3 597
    Points
    3 597
    Par défaut
    Voici le détail qui suppose que la base utilise un SPFILE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >sqlplus / as sysdba
    SQL> ALTER system SET audit_trail=db scope=spfile;
    SQL> shutdown
    SQL> startup
    Avec un compte qui a le droit d'utiliser AUDIT ou un comtpe qui a le rôle DBA ou SYSDBA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL> audit SELECT ON <schéma>.<vue> BY access;

  9. #9
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Malheureusement, je n'ai pas le profil DBA ou SYSDBA.

    Mais n'existe t-il par un autre moyen de connaître le user qui appelle une vue ou de faire apparaître dans la vue le user qui appelle cette vue ???


  10. #10
    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
    Points : 3 597
    Points
    3 597
    Par défaut
    Vous pouvez rajouter dans le code de la vue la pseudo colonne USER.

  11. #11
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Cela ne correspond pas à l'identifiant que j'ai besoin, celui qu'il faudrait que je récupère serait le «OSUSER» qui est contenu dans «V$SESSION» ???
    Y-a-t-il un moyen ?

  12. #12
    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
    Points : 3 597
    Points
    3 597
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sys_context('USERENV','OS_USER')

  13. #13
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Ok cela correspond à ce dont j'ai besoin. Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2008R2] Autorisation sur procédure stockée qui appelle une Vue
    Par billybob2 dans le forum Administration
    Réponses: 6
    Dernier message: 11/03/2014, 09h32
  2. [Vue] Trouver les tables dont dépend une vue
    Par maitrebn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2006, 08h51
  3. Connaitre le processus qui appelle une fonction API
    Par RazielReaver dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 28/05/2006, 13h56
  4. [PL/SQL] Trigger qui appelle une procédure
    Par alex6891 dans le forum Oracle
    Réponses: 5
    Dernier message: 19/01/2006, 09h01
  5. appeller une Vue dans un Select
    Par DR. dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/12/2004, 16h59

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