Er is een grote kans dat de privileges om uit tabel 1 te selecteren, zijn toegekend aan een rol, en de rol is aan jou toegekend. Rechten die aan een rol zijn toegekend, zijn niet beschikbaar voor PL/SQL geschreven door een gebruiker, zelfs niet als de gebruiker de rol heeft gekregen.
Je ziet dit veel voor gebruikers die de dba-rol hebben gekregen op objecten die eigendom zijn van sys. Een gebruiker met de rol dba kan bijvoorbeeld SELECT * from V$SESSION
, maar kan geen functie schrijven die SELECT * FROM V$SESSION
bevat .
De oplossing is om expliciete machtigingen voor het object in kwestie rechtstreeks aan de gebruiker te verlenen, bijvoorbeeld in het bovenstaande geval moet de SYS-gebruiker GRANT SELECT ON V_$SESSION TO MyUser;