Istnieje duża szansa, że uprawnienia do wyboru z tabeli 1 zostały przyznane roli, a rola została przyznana Tobie. Uprawnienia przyznane roli nie są dostępne dla PL/SQL napisanego przez użytkownika, nawet jeśli użytkownikowi przyznano rolę.
Często widać to w przypadku użytkowników, którym przyznano rolę dba na obiektach należących do sys. Użytkownik z rolą dba będzie mógł na przykład SELECT * from V$SESSION
, ale nie będzie w stanie napisać funkcji zawierającej SELECT * FROM V$SESSION
.
Poprawka polega na udzieleniu użytkownikowi wyraźnych uprawnień do danego obiektu, na przykład w powyższym przypadku użytkownik SYS musi GRANT SELECT ON V_$SESSION TO MyUser;