Archivos mensuales: marzo 2014

Consultar tabla sin que se sepa quien es el propietario

Esta entrada de blog trata de una cosa muy simple, pero que nos puede servir de ayuda para si alguna vez, queremos que algún usuario pueda realizar consultas sobre alguna tabla que no queramos que se conozca quien es el propietario. Para ello, basta con crear un sinónimo de dicha tabla y dar el permiso de consulta sobre el sinónimo.

Crear el sinónimo:

create public synonym s_tabla for usuario.tabla;

Asignar los permisos:

grant select on  s_tabla to usuario_destino;

Cuando hagamos una select del “s_tabla” veremos el contenido de “tabla” cuyo propietario es “usuario” pero no será necesario indicarlo en la consulta.

Una tontería facilona, pero que puede sernos útiles en algún momento.

 

Cómo crear el usuario ORACLE necesario para monitorizar con NAGIOS

Para poder monitorizar con NAGIOS los parámetros de Oracle, es necesario crear un usuario llamado “nagios” dentro de la BBDD que queremos monitorizar. Dependiendo de la versión de Oracle que tengamos, tendremos que asignarle unos grants diferentes para que la monitorización se pueda realizar de manera adecuada.

Para versiones 9,10G y 11G:

CREATE USER nagios IDENTIFIED BY oradbmon; -- Poner el password que deseemos
  GRANT CREATE SESSION TO nagios;
  GRANT SELECT any dictionary TO nagios; -- Este no funciona en 8i
  GRANT SELECT ON V_$SYSSTAT TO nagios;
  GRANT SELECT ON V_$INSTANCE TO nagios;
  GRANT SELECT ON V_$LOG TO nagios;
  GRANT SELECT ON SYS.DBA_DATA_FILES TO nagios;
  GRANT SELECT ON SYS.DBA_FREE_SPACE TO nagios;

Para versiones 8i (8.1.7) poner además …

 GRANT SELECT ON sys.dba_tablespaces TO nagios;
 GRANT SELECT ON dba_temp_files TO nagios;
 GRANT SELECT ON sys.v_$Temp_extent_pool TO nagios;
 GRANT SELECT ON sys.v_$TEMP_SPACE_HEADER  TO nagios;
 GRANT SELECT ON sys.v_$session TO nagios;
 GRANT SELECT ON SYS.OBJAUTH$ TO nagios;
 GRANT SELECT ON SYS.OBJ$ TO nagios;
 GRANT SELECT ON SYS.USER$ to nagios;
 GRANT SELECT ON SYS.COL$ TO nagios;
 GRANT SELECT ON SYS.TABLE_PRIVILEGE_MAP TO nagios;

Hay que tener en cuenta que para versiones 8i el privilegio SELECT ANY DICTIONARY no está soportado, y por tanto, se deben conceder de manera individual sobre los objetos del diccionario. Asimismo, el privilegio SELECT ANY TABLE  no permite el acceso a objetos del diccionario, a menos que cambiemos el parámetro…
O7_DICTIONARY_ACCESSIBILITY  de FALSE a TRUE de la siguiente manera:

alter system set o7_dictionary_accessibility=TRUE scope=spfile;