sql >> Database >  >> RDS >> Oracle

ORA-00942:tabel of weergave bestaat niet (werkt als een aparte sql, maar werkt niet binnen een orakelfunctie)

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;



  1. Optimaliseer langzame aggregaten in LATERALE samenvoeging

  2. Voer een instructie uit via een snelkoppeling in MySQLWorkbench

  3. Hoe SQL Server Management Studio (SSMS) te verwijderen - SQL Server/TSQL-zelfstudie, deel 23.1

  4. MySQL Lezen van stream mislukt