Es besteht eine hohe Wahrscheinlichkeit, dass die Berechtigungen zum Auswählen aus Tabelle1 einer Rolle gewährt wurden und die Rolle Ihnen gewährt wurde. Berechtigungen, die einer Rolle gewährt wurden, sind für PL/SQL, das von einem Benutzer geschrieben wurde, nicht verfügbar, selbst wenn dem Benutzer die Rolle gewährt wurde.
Sie sehen dies häufig bei Benutzern, denen die dba-Rolle für Objekte gewährt wurde, die sys gehören. Ein Benutzer mit der dba-Rolle kann beispielsweise SELECT * from V$SESSION
, kann aber keine Funktion schreiben, die SELECT * FROM V$SESSION
enthält .
Die Lösung besteht darin, dem Benutzer explizite Berechtigungen für das fragliche Objekt direkt zu erteilen, zum Beispiel muss der SYS-Benutzer im obigen Fall GRANT SELECT ON V_$SESSION TO MyUser;