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

PL/SQL Oracle Discussion :

Contenu ALL_TAB_COLUMNS différent dans une PROCEDURE PL/SQL


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut Contenu ALL_TAB_COLUMNS différent dans une PROCEDURE PL/SQL
    Bonjour à tous !!!

    Voila, j'ai une procedure PL/SQL qui consulte la table ALL_TAB_COLUMNS pour récupérer les champs d'une table.

    Mon probleme est qu'il ne trouve pas les références de la table. Hors, le même appel (avec le même user) en SQLPlus me renvoie bien les références de ma table.

    Mon appel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, COLUMN_ID
    FROM ALL_TAB_COLUMNS
    WHERE TABLE_NAME = 'MA_TABLE'
    ORDER BY COLUMN_ID
    Je ne comprend pas puisque les droits sont (semble) biens atribués.
    Est-ce que les procédures ont des droits d'accès différents de ceux du compte avec lequel je me connecte (et lance la procedure) ???

    Merci
    ++

  2. #2
    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
    Oui, par défaut, les rôles ne sont pas pris en compte dans le code PL/SQL: seuls les droits accordés directement par GRANT sans utiliser de rôle sont pris en compte.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut
    Merci pifor !!!

    Mais je n'utilise pas de rôles. Je fais directement des GRANT privilege TO user...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    et sys.ALL_TAB_COLUMNS ?

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 98
    Par défaut
    Merci Fred_D !!!

    Je n'ai pas essayé avec sys.ALL_TAB_COLUMNS (ceci dit, je n'ai pas de probleme pour accéder à cette table)

    Sinon j'ai trouvé la cause du problème (à confirmer):

    les droits utilisés pour une procédure sont ceux de l'USER qui a créé cette procédure et non ceux de celui qui l'appelle. (sans les droits accordé via un rôles (j'ai pas vérifié...))

    Solution: donner les droits d'accès à MA_TABLE à cet USER.

    Voila,
    merci encore à vous deux et aux autres
    ++

  6. #6
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    C'est pour cela qu'il est possible de définir que la procédure utilisera les droits de l'utilateur connecté et non pas ceux du propriétaire de la procédure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE PROCEDURE .... AUTHID CURRENT_USER

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/01/2013, 16h25
  2. Saisie clavier de Parametres dans une procedure PL/SQL
    Par E LABOUREAU dans le forum PL/SQL
    Réponses: 1
    Dernier message: 06/11/2009, 19h13
  3. declaration matrice dans une procedure pl/sql
    Par megaloplex dans le forum PL/SQL
    Réponses: 2
    Dernier message: 03/03/2009, 17h51
  4. Faire un DROP dans une procedure PL/SQL
    Par Bebert71 dans le forum PL/SQL
    Réponses: 4
    Dernier message: 19/05/2008, 12h04
  5. Réponses: 1
    Dernier message: 20/07/2007, 07h19

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