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

Administration Oracle Discussion :

problème avec le "REVOKE"


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Par défaut problème avec le "REVOKE"
    bonjour,

    j'ai une petit soucis avec l'instruction REVOKE,
    en effet quand sous sqlplus je tape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    revoke mondroit from monuser;
    là pas de soucis,
    mais j'ai crée une procedure :
    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
     PROCEDURE user_revoke(login IN VARCHAR2,ROLE IN VARCHAR2) IS
     
     str_exec VARCHAR2(200);
     
     revoke_not_granted     EXCEPTION;
     PRAGMA EXCEPTION_INIT (revoke_not_granted , -1951);
     
     BEGIN
     
      BEGIN
     
       str_exec:='REVOKE "'||ROLE||'" FROM "'||login||'"';
       EXECUTE IMMEDIATE str_exec;
     
      EXCEPTION WHEN revoke_not_granted     THEN
         NULL;
      END;
     
     END user_revoke;
    et là si j'execute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    begin
    user_revoke('monuser','mondroit');
    end;
    j'ai l'erreur ORA-01932
    ça me saoule depuis ce matin je suis dessus, pouvez vous m'aider
    pleaaaaaase

  2. #2
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    En PL/SQL, le privilège (de révocation en l'occurence) doit être obtenu directement et non via un rôle.

  3. #3
    Membre éclairé Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Par défaut
    je ne comprends pas ce que tu veux dire
    ça a toujours marché chez moi
    et ce WE on a basculé en 9i, auparavant c'etait une 8i
    il y a peut être un lien

  4. #4
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM DBA_ROLES_PRIVS
    WHERE GRANTED_ROLE=<TON ROLE>
    Je pense qu'il y a au moins deux lignes retournées :
    la première où GRANTEE = TON USER sans "ADMIN OPTION"
    la secondeoù GRANTEE = un rôle attribué à ton USER avec "ADMIN OPTION"

  5. #5
    Membre éclairé Avatar de Nounoursonne
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 264
    Par défaut
    euh non
    par contre le user qui execute ces commandes possede un role "APP_DEVPT"
    qui lui à le privilège suivant "grant any role with grant option"
    si ça peut aider

  6. #6
    Membre Expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Par défaut
    ben voilà !
    il faut que USER ait reçu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT <ROLE> to <TON USER> WITH ADMIN OPTION;
    C'est ce que je voulais dire lors de ma 1ère intervention par "En PL/SQL, le privilège (de révocation en l'occurence) doit être obtenu directement et non via un rôle."

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

Discussions similaires

  1. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44
  2. Problème avec la commande revoke sous oracle
    Par merlubreizh dans le forum Oracle
    Réponses: 19
    Dernier message: 28/04/2006, 15h02
  3. Formulaires : problème avec les slashes et les quotes
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 12/10/2005, 15h59

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