Vues DBA inacessibles pour user SYSTEM depuis une procédure
Je veux créer la procédure suivante (que j'ai simplifiée pour expliquer l'erreur) dans le schéma SYSTEM (je suis connecté en tant que SYSTEM) :
Code:
1 2 3 4 5
| CREATE OR REPLACE PROCEDURE P IS
CURSOR C IS SELECT * FROM dba_tables;
BEGIN
EXECUTE IMMEDIATE 'SELECT 1 FROM DUAL';
END; |
Et là la compilation sort une erreur ORA-00942: table or view does not exist !
Alors qu'avec une autre vue comme all_tables par exemple ça fonctionne.
Pourtant le user SYSTEM a bien accès en lecture à la vue dba_tables (ça marche depuis une simple requête SQL)
Comment est-ce possible que SYSTEM ait accès à une vue dba depuis du code SQL mais pas du code PL/SQL ? La gestion des droits est-elle différente ? Ou bien aurais-je oublié quelque chose ?
Merci pour votre aide