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 :

Procédures stockées et différents schémas


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut Procédures stockées et différents schémas
    Bonjour à tous

    Je travaille sous oracle 8i

    J'ai une erreur de compilation sur la procédure PS1:
    "6/14 PLS-00201: identifier 'SCHEMA1.TABLE1' must be declared"
    Dans la situation suivante;

    Description partielle des schémas
    [SCHEMA1].Tables
    -- TABLE1

    [SCHEMA2].Procedures
    PS1:
    -- CREATE OR REPLACE PROCEDURE SCHEMA2.PS1 IS
    BEGIN
    DECLARE
    CURSOR ab IS SELECT * FROM schema1.table1;
    BEGIN
    .....;
    END;
    END;

    Je précise que l'utilisateur propriétaire du SCHEMA2 possède les droits SELECT,INSERT,DELETE,UPDATE sur la Table SCHEMA1.TABLE1.

    Pour résumer, ma question est; Comment fait-on pour utiliser dans une procédure stockée les tables d'un schéma qui n'est pas celui de la PS.

    Par avance merci pour vos réponses

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par jjdom
    Je précise que l'utilisateur propriétaire du SCHEMA2 possède les droits SELECT,INSERT,DELETE,UPDATE sur la Table SCHEMA1.TABLE1.
    Il les possède par un rôle ou directement (grant) ?

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    Bonjour PlaineR

    Merci pour ta réponse

    Les droits sont donnés par le biais d'un rôle.

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    C'est ce que je pensais

    Oracle ne tient pas compte des droits donnés par un rôle en PL/SQL ou en SQL dynamique (et c'est là un de ses gros défauts). Il faut accorder tous les droits directement par des grant.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 7
    Par défaut
    Pour aller plus loin sur mon problème,

    En fait j'ai plus d'une centaine de schémas.

    L'ensemble des tables (plus de 250) sont dans un même schéma.

    Les droits d'accès aux tables de ce shéma, sont donnés aux utilisateurs au travers de rôles.

    Si je dois revenir sur cette méthode d'administration je m'arrache les cheveux.

    J'ai constaté dans mes différents tests que si j'exécute le bloc PL/SQL (avec WorkSheet par exemple) sans passer par un "CREATE OR REPLACE PROCEDURE SCHEMA2.PS1" je n'est pas d'erreur.

    La question que je me pose donc est: Si je donnes des droits par GRANT à l'utilisateur propriétaire du schéma de la PS dont de la procédure, et que je continue à gérer les droits des autres utilisateurs par Rôle, cela marchera-t-il ?

    En d'autres termes est-ce seulement le "CREATE OR REPLACE..." qui nécessite des droits attribués par GRANT ??

    Par avance merci.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    Non, l'éxécution nécessite les mêmes droits... Ce n'est pas qu'à la création

Discussions similaires

  1. Procédure stocké utilisant deux schémas
    Par nico.louis dans le forum PL/SQL
    Réponses: 2
    Dernier message: 31/12/2010, 12h39
  2. Procédure stockée non visible dans le schéma
    Par Floduh dans le forum Développement
    Réponses: 2
    Dernier message: 24/11/2009, 14h53
  3. [Débutant] Procédure stockée uniquement pour un schéma
    Par peaceinpal dans le forum Administration
    Réponses: 5
    Dernier message: 15/01/2009, 11h19
  4. Réponses: 2
    Dernier message: 04/04/2008, 09h48
  5. [PEAR][DB] Appel de procédure stockée dans différents schémas sous postgresql
    Par rebolon dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/09/2006, 16h49

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