J'ai une base de données et un utilisateur l'administrateur. Ensuite, j'ai un user_app supplémentaire à qui j'ai accordé un accès CRUD à toutes les tables de mon modèle de données Oracle (puis appliquée celles via le script généré)
J'ai créé un synonyme pour chaque table du compte user_app, avec la syntaxe suivante:
create synonym USER_APP.CLIENTS for USER.CLIENTS;
Et pour chaque génération de table réussit et commettre. Mais quand j'essaie de l'utiliser de toute façon sur ce compte, par exemple:
select * from CLIENTS;
Je reçois une erreur que les clients n'existent pas, à savoir
ORA-00942 : table or view does not exist.
Que puis-je faire pour résoudre ce problème ou où dois-je regarder pour déterminer la cause/solution?
Les synonymes n'ont rien à voir avec les privilèges. Ils sont simplement un moyen de simplifier la dénomination.
L'erreur que vous obtenez semble indiquer que user_app
n'a pas de privilèges sur le user.clients
tableau. Vous auriez besoin d'accorder que
GRANT SELECT, INSERT, UPDATE, DELETE
ON user.clients
TO user_app;
Bien sûr, dans votre système actuel, je suppose qu'il y a un rôle que vous accorderiez des privilèges à et ce rôle serait accordé à user_app
.