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 :

Database Link et Procedures


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 62
    Par défaut Database Link et Procedures
    Bonjour,

    Je suis actuellement en oracle9.
    J'essaye désespérément de créer une procédure créant un Database Link.
    Pour info, voici ma procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PROCEDURE do_add IS
    v_temp string (300);
    BEGIN
    v_temp := 'CREATE DATABASE LINK base9i connect to login identified by mot_de_passe using ''BASE9I''';
    execute immediate v_temp;
    END do_add;
    SQL> execute do_add;
    À l'exécution de cette simple procédure, ORACLE retourne : ORA-01031: insufficient privileges...

    Je me suis donc mis DBA et SYSDBA (GRANT DBA/SYSDBA TO mon_user)
    Mais rien à faire. Toujours cette erreur.

    Auriez vous une idée?

    Merci pour votre aide.
    Vincent

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    SYSDBA donne des permissions particulières, comme l'arrêt / démarrage d'une base de données :

    SYSDBA

    Perform STARTUP and SHUTDOWN operations

    ALTER DATABASE: open, mount, back up, or change character set

    CREATE DATABASE

    ARCHIVELOG and RECOVERY

    CREATE SPFILE

    Includes the RESTRICTED SESSION privilege
    Ce n'est donc pas du tout adapté à vos besoins.

    GRANT ALL PRIVILEGES aurait fonctionné mais je le déconseille très fortement. SYSDBA ou ALL PRIVILEGES ne doivent être donnés qu'à des utilisateurs bien définis dont on va se servir pour faire un peu tout : création de schéma, arrêt/relance... Mais ces utilisateurs (il ne devrait même y en avoir qu'un) ne doivent JAMAIS au grand jamais apparaître à quelque niveau que ce soit dans une application: ceci serait trop dangereux. Les utilisateurs utilisés dans des applications ne doivent se voir affecter QUE les privilèges dont ils ont besoin, aucun autre (d'où l'intérêt énorme des packages ).

    Après ce petit avertissement, la commande dont vous avez besoin est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT CREATE DATABASE LINK TO your_user;
    Lancez cette commande avec SYS ou SYSTEM (par exemple) et your_user pourra ensuite créer un DBLINK.

    Cordialement,

    rbaraer

  3. #3
    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
    Outre les recommandations d'attribution partimonieuse de privilèges que vient de vous faire rbaraer, le problème vient du fait que l'utilisateur qui exécute la procédure possède bien le privilège de créer un db_link mais via un rôle, et non directement.

    Or, en PL/SQL, les privilèges acquis via un rôle sont ignorés.

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 62
    Par défaut
    Merci beaucoup pour votre réponse prévennante et très juste.
    Cependant, quelquechose m'echappe totalement.
    Je ne l'avais pas précisé mais si je me connectais en sqlplus a ma base avec mon utilisateur le CREATE DATABASE LINK marche très bien.

    C'est pour cela que je n'ai pas essayé ce genre de GRANT.
    Y'aurais il une différence de droits entre ces deux méthodes.....

    Cordialement,
    Vincent

    ps : je tiens à préciser que mettre mon utilisateur SYS/SYSDBA n'etais que dans le but de faire des tests et que bien entendu je ne laisserais pas tourner une application avec un utilisateur ayant autant de pouvoir.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 62
    Par défaut
    Merci beaucoup tous les deux pour vos lumières !!!!!

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

Discussions similaires

  1. [10gR2] Database Link et Procedure
    Par Persifleur dans le forum SQL
    Réponses: 7
    Dernier message: 04/04/2014, 15h14
  2. Database link et procédure
    Par Sir Coco dans le forum PL/SQL
    Réponses: 10
    Dernier message: 02/04/2008, 16h13
  3. partage de lien DATABASE LINK
    Par de LANFRANCHI dans le forum Administration
    Réponses: 5
    Dernier message: 21/09/2004, 08h40
  4. Erreur ORA-12514 avec database link
    Par gafreu dans le forum Administration
    Réponses: 20
    Dernier message: 09/09/2004, 11h53
  5. DATABASE LINK + type Long et long raw ...
    Par bchristo dans le forum Administration
    Réponses: 21
    Dernier message: 26/04/2004, 15h27

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