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
Je me connecte avec l'utilisateur ACode:
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;
Reconnexion avec l'utilisateur SYSTEMCode:CREATE TABLE A.T_A (....)
Création de l'utilisateur BCode:create role RL_USER not identified;
Les synonymesCode:
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 ;
Et enfin les droits sur les tablesCode:create synonym B.T_A for A.T_A;
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" !Code:
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"
Pourtant si je me connecte à sqlplus et que je tape
J'ai bien mes synonymes affichésCode:select * from user_synonyms
Je séche vraiment la et je ne sais plus quoi essayer...Code:
1
2
3
4 SYNONYM_NAME : T_A TABLE_OWNER : A TABLE_NAME : T_A ...
Quelqu'un pourrait m'aider s'il vous plait ?
Merci d'avance.