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

 Oracle Discussion :

"Grant" actifs jusqu'à quand ?


Sujet :

Oracle

  1. #1
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut "Grant" actifs jusqu'à quand ?
    Bonjour,
    Je débute sur Oracle depuis quelques jours et j'ai un problème sur la manipulation des grant. Je me demande jusqu'à quand les autorisations que l'on donne aux utilisateurs sont actives. Je souhaite accorder ( pendant l'exécution de ma procédure ) des autorisations à certains utilisateurs. Tout fonctionne mais je suis obligé de lancer plusieurs fois dans ma procédure le même script qui donne ces autorisations ( dans ce cas là, toutes les autorisations à tous les utilisateurs ). Je ne comprends pas pourquoi.
    Merci d'avance de votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Points : 342
    Points
    342
    Par défaut
    Les grants sont actifs jusqu'a ce qu'on les enleve (revoke).
    Une procédure stockée s'execute soit avec les droit du créateur de la procédure, soit avec les droits de celui qui l'execute.

    Il n'est pas normal de donner des droits dans une procédure. C'est même assez déconseillé : grant, c'est du DDL, à chaque fois que c'est executé il y a un commit.
    Si tu donne des droits dans une procédure, cela ne peut être que pour les enlever à la fin, mais en cas de probleme tu laisse ton systeme dans un état probablement inadéquate.

  3. #3
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    Merci de ta réponse. Pour l'instant, je ne suis pas encore assez compétent sur ce système pour connaitre les raisons des procédures actuellement mises en place dans mon entreprise. Donc, j'essaie de faire fonctionner ce qui est utilisé jusqu'à présent.

    En fait, ma procédure de création de ma base ressemble à ceci ( c'est un script que je lance dans sql developper ) :

    start... (le script des autorisations)

    start (script.sql avec un connect sur un utilisateur puis des traitements de créations de tables, etc..., puis un commit et un disconnect )

    AVANT DE LANCER L'AUTRE SCRIPT, JE SUIS OBLIGE DE RELANCER LE SCRIPT DES AUTORISATIONS ( POUR NE PAS AVOIR DES TABLE DOES NOT EXIST ), c'est à dire :
    start... (le script des autorisations)

    start (script2.sql avec un connect sur un autre utilisateur puis des traitements de créations de tables, etc..., puis un commit et un disconnect )

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 270
    Points : 342
    Points
    342
    Par défaut
    Je comprend mieux ! c'est un script de création de base, pas une procédure pl ! OK !

    Tres probablement, ton premier script drop les tables et les recrée. En droppant les tables, les grants associés sont aussi détruits.

    Un script, ce n'est pas une procédure, dans le vocabulaire oracle.

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