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
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
CREATE TABLE A.T_A (....)
Reconnexion avec l'utilisateur SYSTEM
create role RL_USER not identified;
Création de l'utilisateur B
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
create synonym B.T_A for A.T_A;
Et enfin les droits sur les tables
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
select * from user_synonyms
J'ai bien mes synonymes affichés
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.
Partager