Oracle - Listar todos los esquemas en oracle

   
Vista:

Listar todos los esquemas en oracle

Publicado por Eduardo (1 intervención) el 11/10/2014 07:36:55
Buenas,
Cuando ejecuto la siguiente consulta con el usuario system

1
select * from dba_users;

Me lista todos los usuarios (esquemas u owners) de la BD, pero cuando intento colocar la misma consulta dentro de un procedimiento almacenado, me lanza el siguiente error al compilar el package:

1
Error(416,12): PL/SQL: ORA-00942: table or view does not exist

No entiendo por qué me dice que no existe, si cuando lo ejecuto en una simple consulta fuera del procedimiento, devuelve el conjunto de resultados,

Favor su apoyo en aclararme,

Muchas gracias, saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Listar todos los esquemas en oracle

Publicado por Rafael (177 intervenciones) el 13/10/2014 14:06:43
Esto ocurre por que dentro de un store procedure, deberias calificar completamente los objetos a los que intentas acceder...

es decir poner algo como:
1
select * from sys.dba_users;

Hago enfasis en el sys que es el owner del objeto... Obviamente el usuario OWNER del store procedure, como el usuario que ejecuta el procedimiento deben tener acceso explicito al objeto dba_user...

Ahora bien si esto no te funciona por alguna restriccion extra de configuración podrias evaluar acceder al objeto mediante el sinonimo publico ...
1
2
SELECT *
FROM ALL_USERS;

Que en principio debería de ser el objeto que utilizases por seguridad de la Base de Datos.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Listar todos los esquemas en oracle

Publicado por luis (232 intervenciones) el 14/10/2014 15:30:37
Todos los objetos de base de datos tienen propietarios, si deseas que otro usuario desee consultar tu objeto, el propietario debe darle privilegios al otro usuario para que pueda ver el objeto.

En tu caso, mencionas que estas creando un procedimiento de BD (que es un objeto de BD) el cual tiene un propietario, al ejecutar el procedimiento las sentencias dentro del procedimiento de BD se ejecutan según los privilegios que tenga el propietario del procedimiento, favor de verificar que el propietario del procedimiento tenga acceso a los objetos usados dentro de las sentencias del procedimiento.

Saludos

Luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar