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 gestion user


Sujet :

Administration Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut Problème gestion user
    Bonjour,

    Je dois migrer une application sur un serveur oracle, et je gère en ce moment les utilisateurs sur la base de données,

    Je voudrais donc créer ma base a partir d'un utilisateur A et ensuite me connecter avec une utilisateur B depuis mon applicatif, qui n'aurait que les SELECT, UPDATE, DELETE et INSERT de base.

    Seulement voilà, j'ai quelques problèmes :

    - je crée donc un utilisateur A, depuis lequel j'execute le script de création de base.
    - Je crée ensuite un role, puis un utilisateur B auquel j'affecte le role créé.
    - Je créé ensuite des synonymes pour l'utilisateur B sur toutes les tables de l'utilisateur A
    - Et enfin j'attribue la droit pour le rôle sur les tables que je veux.

    Ca donne :

    Avec l'utilisateur SYSTEM

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create user A identified by A
    	default tablespace A_DATA
    	quota unlimited on A_DATA
    	profile DEFAULT ;
    grant CONNECT to A;
    grant RESOURCE to A;
    Je me connecte avec l'utilisateur A

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE A.T_A (....)
    Reconnexion avec l'utilisateur SYSTEM

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create role RL_USER not identified;
    Création de l'utilisateur B

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create user B identified by B
    	default tablespace B_DATA
    	quota unlimited on B_DATA
    	profile DEFAULT ;
    grant CONNECT to B ;
    grant RESOURCE to B ;
    grant RL_USER to B ;
    Les synonymes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create synonym B.T_A for A.T_A;
    Et enfin les droits sur les tables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GRANT DELETE ON A.t_A TO "RL_USER"
    GRANT INSERT ON A.t_A TO "RL_USER"
    GRANT SELECT ON A.t_A TO "RL_USER"
    GRANT UPDATE ON A.t_A TO "RL_USER"
    Après avoir fait cela, je test mon appli avec l'utilisateur A, tout est OK, en revanche avec l'utilisateur B, j'ai une formidable erreur "table or view doesn't exists" !

    Pourtant si je me connecte à sqlplus et que je tape

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from user_synonyms
    J'ai bien mes synonymes affichés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SYNONYM_NAME : T_A
    TABLE_OWNER : A
    TABLE_NAME : T_A
    ...
    Je séche vraiment la et je ne sais plus quoi essayer...

    Quelqu'un pourrait m'aider s'il vous plait ?

    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 227
    Points : 161
    Points
    161
    Par défaut
    bonjour;
    tu as créé le role avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE role RL_USER NOT IDENTIFIED;
    puis tu as créé l'utilisateur avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE user B IDENTIFIED BY B
    	DEFAULT tablespace B_DATA
    	quota unlimited ON B_DATA
    	profile DEFAULT ;
    GRANT CONNECT TO B ;
    GRANT RESOURCE TO B ;
    GRANT RL_USER TO B ;
    tu lui as attribué le role RL_USER qui ne contient rien.
    puis tu allimente le role:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GRANT DELETE ON A.t_A TO "RL_USER"
    GRANT INSERT ON A.t_A TO "RL_USER"
    GRANT SELECT ON A.t_A TO "RL_USER"
    GRANT UPDATE ON A.t_A TO "RL_USER"
    maintenant le role RL_USER contient les privilèges objets; si tu fais:
    ca devrait marcher

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 227
    Points : 161
    Points
    161
    Par défaut
    Je ne sais pas si j'ai répondus à ta question, si c'est pas le cas fais moi signe pour que je puisse t'aider.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Merci pour ta réponse, j'essaie ca et je te dit

    EDIT : ca ne change rien,

    j'ai fait les GRANT avant d'affecter le ROLE à l'utilisateur, mais ca donne toujours la même chose...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 144
    Points : 95
    Points
    95
    Par défaut
    bonjour, commence par tester si tu peux afficher le contenu de la table du user A sans passer par un synonym:


  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    J'ai essayé

    en me connectant avec le user B et j'ai toujours l'indication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORA-000942 : table or view doesn't exists.
    Est-il possible que les guillemets jouent un rôle quand je fait

    Alors que j'ai crée le role sans les guillement ?

    Merci.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2007
    Messages : 227
    Points : 161
    Points
    161
    Par défaut
    bonjour;
    je crois que tu as raison il ne faut pas utiliser les guillemets il faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    GRANT DELETE ON A.t_A TO RL_USER
    GRANT INSERT ON A.t_A TO RL_USER
    GRANT SELECT ON A.t_A TO RL_USER
    GRANT UPDATE ON A.t_A TO RL_USER
    puis faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE user B IDENTIFIED BY B
    	DEFAULT tablespace B_DATA
    	quota unlimited ON B_DATA
    	profile DEFAULT ;
    GRANT CONNECT TO B ;
    GRANT RESOURCE TO B ;
    GRANT RL_USER TO B ;

  8. #8
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    bonjour

    le pb vient de ton public synonym

    il faut que tu le crée comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE PUBLIC synonym T_A FOR A.T_A;
    et non B.T_A

    @

  9. #9
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 710
    Points
    710
    Billets dans le blog
    1
    Par défaut
    bonjour,

    j' ai fait la même chose sur une base et cela fonctionne sans utiliser les publics synonyms .

    une seule condition : se reconnecter à sqlplus quand le role attribué
    a été modifié .

    les
    GRANT SELECT ON A.t_A TO RL_USER
    doievent etre excutés sous le user A .

    cdlt

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut
    Je comprend pas pourquoi cela ne marche pas chez moi, peut être la version d oracle ? Même si je ne pense pas...

Discussions similaires

  1. Problème gestion de collisions
    Par kaien dans le forum Physique
    Réponses: 6
    Dernier message: 31/01/2007, 15h31
  2. Problème gestion IOException
    Par matt8-5 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 03/11/2006, 15h07
  3. [C# 2.0] Problème gestion mémoire
    Par Stéphane-M dans le forum Windows Forms
    Réponses: 13
    Dernier message: 21/09/2006, 14h36
  4. Problème gestion actionListener pour JButton
    Par cedricbr dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 26/05/2006, 16h39
  5. Problème - Gestion des exceptions - MFC.
    Par Atomikx dans le forum MFC
    Réponses: 4
    Dernier message: 14/11/2005, 09h38

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