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 :

Problème avec "grant create any procedure to"


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 73
    Points : 48
    Points
    48
    Par défaut Problème avec "grant create any procedure to"
    Bonjour à tous,

    J'ai 2 user dans la même instance :
    sunopsis et odshr

    Je me connecte avec odshr pour donner le droit suivant à sunopsis :
    grant create any procedure to sunopsis ;

    Je me connecte avec sunopsis et je lance le script suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE OR REPLACE PROCEDURE odshr.Script_desactive_PK_ODS IS
    CURSOR c_table IS
    SELECT table_name, constraint_name
    FROM SYS.ALL_CONSTRAINTS 
    WHERE OWNER = 'ODSHR'
    and table_name like 'HRA_%'
    and constraint_type = 'P' ;
    i c_table%ROWTYPE;
    BEGIN
    FOR i IN c_table
    LOOP
    EXECUTE IMMEDIATE 'alter table ODSHR.' || i.table_name || ' disable constraint ' || i.constraint_name ;
    END LOOP;
    END;
    Mais j'obtiens l'erreur suivante :
    Error on line 0
    CREATE OR REPLACE PROCEDURE odshr.Script_desactive_PK_ODS IS
    CURSOR c_table I
    ORA-01031: insufficient privileges

    Je n'y comprends rien...
    Note : la procédure fonctionne très bien si je la lance avec odshr

  2. #2
    Membre éclairé Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Points : 773
    Points
    773
    Par défaut
    Tu essaye de voir une vue du dictionnaire DBA/SYS avec un compte basique, et en plus pour voir tes propres objets. Logique qu'il te jette.

    Changes ta requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     CURSOR c_table IS
    SELECT table_name, constraint_name
    FROM USER_CONSTRAINTS 
    WHERE table_name like 'HRA_%'
    and constraint_type = 'P' ;
    Philippe CEROU,

    Architecte Systèmes & Bases de données.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Je te remercie pour ta réponse, mais le souci ne vient pas de là il me semble.
    Si je lance la requete seule (dans SQL+, sans passer par la procedure) je n'ai aucun souci pour lire dans la table SYS.ALL_CONSTRAINTS avec le user sunopsis.

    Dans la procedure, si je remplace ce bout de code par le tiens, j'ai toujours le même message d'erreur.
    Error on line 0
    CREATE OR REPLACE PROCEDURE odshr.Script_desactive_PK_ODS IS
    CURSOR c_table I
    ORA-01031: insufficient privileges

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    [QUOTE=philcero;3348948]Tu essaye de voir une vue du dictionnaire DBA/SYS avec un compte basique, et en plus pour voir tes propres objets. /QUOTE]
    Non, je regarde les objets du user odshr, en étant connecté sunopsis.

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 63
    Points : 68
    Points
    68
    Par défaut
    Regarde ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXECUTE IMMEDIATE 'alter table ODSHR.' || i.table_name || ' disable constraint ' || i.constraint_name ;

    Es-tu sûr que sunopsis a les privilèges nécessaires (alter) sur les objets de odshr ?

    Merci de vérifier. Je crois que c'est là le problème.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 18
    Points : 21
    Points
    21
    Par défaut
    Hypothèse à tester
    Comme tu les sais, les views
    • USER_% correspondent aux objets du user connecté
    • ALL_% correspondent aux objets sur lesquels le user connecté possède un droit

    Deux users différents ont donc chacun accès à ALL_% et USER_% mais ils n'accèdent pas aux mêmes informations.

    A partir de ce principe, il me paraît incongru (je vois pas quel mot utiliser), connecté comme sunopsis, de créer une procédure dans le schéma odshr qui utilise cette view ALL_%. Parce que, à la compilation, Oracle sait que odshr ne connait pas la view ALL_% accessible à sunopsis.

    La solution serait de travailler avec les views DBA_% qui correspondent à tous les objets du dictionnaire - et donc qui sont identiques quel que soit le user connecté. Inconvénient : les deux users doivent avoir l'accès au dictionnaire ce qui n'est pas toujours souhaité (j'ai jamais bien compris pourquoi d'ailleurs).

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par plalm Voir le message
    A partir de ce principe, il me paraît incongru (je vois pas quel mot utiliser), connecté comme sunopsis, de créer une procédure dans le schéma odshr qui utilise cette view ALL_%. Parce que, à la compilation, Oracle sait que odshr ne connait pas la view ALL_% accessible à sunopsis.
    Le problème n'est pas là je pense. En effet, si je lance exactement la même procédure avec le user ODSHR, tout fonctionne parfaitement. Il crée la procédure sans message d'erreur et peut la lancer avec le résultat attendu au bout.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par sdanvbnet Voir le message
    Es-tu sûr que sunopsis a les privilèges nécessaires (alter) sur les objets de odshr ?
    Merci de vérifier. Je crois que c'est là le problème.
    J'ai bien sûr vérifier un minimum de chose, en lançant par exemple des bouts de codes en dur.
    Sunopsis a les droits et peut tout à fait activer ou désactiver les clefs de ODSHR.
    De façon générale, sunopsis voit tout ce qu'il faut et peut "altérer" les tables de ODSHR, d'où mon incompréhension.

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

Discussions similaires

  1. grant create sequence / grant create any sequence
    Par bul21 dans le forum Administration
    Réponses: 2
    Dernier message: 18/05/2009, 18h29
  2. Réponses: 2
    Dernier message: 05/02/2009, 09h04
  3. difference entre grant create & grant create any
    Par bm_oracliste dans le forum Oracle
    Réponses: 2
    Dernier message: 25/11/2007, 08h46
  4. Problème avec la méthode Create d'un dérivé de CEdit
    Par PetitPapaNoël dans le forum MFC
    Réponses: 4
    Dernier message: 13/07/2007, 12h41
  5. Problème avec le controle "create user wizard"
    Par iTanger dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/05/2007, 10h22

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