Bonjour,PL/SQL: Accéder à la vue d'un utilisateur différent dans la procédure stockée
J'ai 2 utilisateurs dans une base de données ORACLE, USER1 et USER2.
USER2 a une vue View1, et je veux une procédure USER1 pour accéder View1 via un curseur, comme ceci:
create or replace procedure PROCEDURE1 is
CURSOR C_CURSOR
IS
select * from USER2.VIEW1;
BEGIN
RETURN;
end PROCEDURE1;
Cependant, lorsque je tente de compiler le PROCÉDURE1, je reçois l'erreur:
ORA-01031 - privelieges insuffisantes
Cependant, je reçois que cette erreur dans la procédure stockée, comme je peux faire la requête suivante très bien de USER1:
select * from USER2.VIEW1;
Pouvez-vous s'il vous plaît me dire ce que je fais mal?
Merci beaucoup!
USER1 doit avoir obtenu l'accès indirectement, par l'intermédiaire d'un rôle. Pour créer la procédure, il faut le privilège explicite 'accorder select sur user2.view1 à user1;' –
Merci beaucoup! J'avais essayé cela avant, mais je ne pourrais pas parce que USER2.VIEW1 sélectionnait d'une table d'un 3ème UTILISATEUR, USER3. Je l'ai finalement obtenu en accordant select sur la table de USER3 à USER2 avec l'option de concession. – miduarte