jueves, 23 de abril de 2009

Otorgando privilegios para realizar "SELECT" sobre vistas del diccionario de la base de datos

En ocasiones es necesario dar a un usuario silvestre la posibilidad de realizar una consulta sobre una determinada vista o tabla del diccionario de la base de datos.

Si al crear el usuario en la base de datos le damos únicamente el privilegio de "CREATE SESSION", este no puede realizar consultas sobre las vistas o tablas del diccionario de la base datos.

Ejemplo:

Connectado con un usuario normal:

SQL*Plus: Release 10.2.0.1.0 - Production on Jue Abr 23 08:54:29 2009


Copyright (c) 1982, 2005, Oracle. All rights reserved.


Conectado a:
Oracle Database 10g Release 10.2.0.4.0 - 64bit Production

With the Real Application Clusters option

SQL> select * from dba_role_privs;
select * from dba_role_privs
*

ERROR en línea 1:
ORA-00942: table or view does not exist

Lo que requerimos es otorgarle el privilegio de "SELECT ANY DICTIONARY", con una cuenta con role de DBA y luego sin necesidad de volverse a logear en la base de datos, volvemos a ejecutar la consulta.

-------------- Nueva ventana con usuario con role DBA --------

SQL*Plus: Release 10.2.0.1.0 - Production on Jue Abr 23 08:56:18 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.


Conectado a:
Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
With the Real Application Clusters option

SQL> grant select any dictionary to usuario;

Concesión terminada correctamente.

SQL>


-------------- De vuelta en la otra session -----------------



Con gusto a solicitud de mi amigo Johnny Chacón.

No hay comentarios:

Publicar un comentario

Te agradezco tus comentarios. Te esperamos de vuelta.

Todos los Sábados a las 8:00PM

Optimismo para una vida Mejor

Optimismo para una vida Mejor
Noticias buenas que comentar