PL/SQL

PL/SQL: ORA-00942: la tabla o vista no existe

Foros IT

Buen dia

 

Tengo este script que puedo ejecutar sin ningun problema desde editor de toad.

Sin embargo al ponerlo dentro de un procedimiento almacenado marca el error

PL/SQL: ORA-00942: la tabla o vista no existe

en el renglon donde consulto la vista:  sys.dba_objects

 

Este es el script.

 

GRANT WITH GRANT OPTION: La propiedad transitiva en la concesión de permisos de Oracle

La instrucción grant se utiliza para conceder determinados permisos genéricos o bien permisos sobre objetos a usuarios de bases de datos Oracle.

La sintaxis de GRANT para conceder permisos genéricos es la siguiente:

GRANT [privilegios_de_sistema | roles] 
TO [usuarios | roles |PUBLIC] {WITH GRANT OPTION } 

La sintaxis de GRANT para conceder  premisos sobre objetos es la siguiente:

GRANT [ALL {PRIVILEGES} | SELECT | INSERT | UPDATE | DELETE] ON objeto 
TO [usuario | rol | PUBLIC] {WITH GRANT OPTION} 

 

La sintaxis de GRANT es muy sencilla, y los privilegios los puede conceder el usuario propietario de los objetos, o un usuario con privilegios de concesión de permisos sobre objetos que no son suyos (DBA's).

Lo que quería comentar es la utilización de la opción de grant WITH GRANT OPTION, que permite que el usuario al que le han concedido permisos pueda a su vez concederlos a otros usuarios.

 

Ejemplo de GRANT WITH GRANT OPTION

Mostraré la utilidad de esta opción con un ejemplo: