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.
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.