You are on page 1of 4

Log de oracle - Oracle - Todoexpertos.

com

Pgina 1 de 4

1 RESPUESTA
RESPUESTA

pedrito12 (/usuarios/pedrito12), Actualmente estoy trabajando como Manager en una


(/usuarios/pedrito12)
multinacional de...

Parece ser que mis homlogos aqu en TodoExpertos han tenido problemas... si es
que antes o despus el desastre llegar. Si trabajasen con Oracle y necesitasen un
experto... pues...
... bueno a lo que vamos...
Recuerdo el tema de las auditoras:
Lo que tienes que hacer es lo siguiente:
Quita la almohadilla del parmetro AUDIT_TRAIL=true en el fichero de
inicializacin de parametros. init.ora.
Apaga y reinicia la base de datos para que los cambios hagan efecto.
Con el usuario SYS tienes que activar la auditora que te interese, que creo eran
las de objeto.
Pues bien, desde sqlplus, usuario SYS:
audit insert on PEDRO.demo;
audit select on PEDRO.demo;
audit delete on PEDRO.demo;
audit update on PEDRO.demo;
tambien tienes la opcion de auditar todo a la vez en una sola sentencia:
audit all on PEDRO.demo;
Y la vista DBA. AUDIT. OBJECT recoger los registros de auditora, que en realidad
residen en la tabla AUD$ del sistema, tablespace SYSTEM.
---AVISO!---

http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/oracle/r... 30/08/2015

Log de oracle - Oracle - Todoexpertos.com

Pgina 2 de 4

Necesitars vaciar la tabla AUD$ de vez en cuando, (lo normal es una vez a la
semana), para que no se llene innecesariamente el tablespace de system, lo cual
puede resultar peligroso y podemos incidir en el rendimiento de la base de datos
negativamente.
---------Para poder vaciar la tabla, debemos llevrnosla a otro tablespace de otro usuario,
por ejemplo tablespace AUDITORIA del usuario AUDITORIA.
Primero creamos la tabla que albergar los datos.
Scate el script de la vista, o si no ejecuta lo siguiente:
create table AUDITORIA tablespace AUDITORIA as select * from
DBA_AUDIT_OBJECT;
En este caso como ya hemos metido los registros que nos interesan, pues
podemos borrarlos:
truncate table AUD$; --> desde usuario SYS.
Si lo que pasa es que ya tenemos creada la tabla auditoria, lo que tenemos que
hacer es pasar los registros a la tabla AUDITORIA y truncar la tabla del sistema,
de la siguiente manera:
insert into AUDITOR.AUDITORIA
select * from DBA_AUDIT_OBJECT;
seguuidamente hacemos un truncate de la tabla AUD$;
truncate table AUD$;
NOTA: Lo ms profesional y ordenado sera tener la tabla de auditoria en un
tablespace para ella sola(si va a ser muy grande) y adems que est bajo un
usuario a parte de cualquiera, ms que nada para mejorar e independizar la
manejabilidad de los datos.
En fin, espero todo salga a pedir de boca... y ah! Se me olvidaba dejarte la famosa
select para ver los registros que se estn auditando:
Select Os_Username , Username, Terminal, Owner, Obj_Name, Action_Name,
DECODE(Returncode,'0','Success',Returncode), TO_CHAR(Timestamp,'DD-MON-YY
HH24:MI:SS')
from DBA_AUDIT_OBJECT;
Fjate que los campos son comunes a los que tiene tu tabla de AUDITORIA, con lo
que esta select, dentro de un tiempo tambin podrs lanzarla sobre esa tabla para

http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/oracle/r... 30/08/2015

Log de oracle - Oracle - Todoexpertos.com

Pgina 3 de 4

ver registros, porque como tiene la misma estructura, pues puedes lanzarla.
En fin.
el 9 dic. 02

Hola Pedro, como siempre gracias de antemano por tu tiempo.

(/usuarios/macote1)

Despus de ejecutar la sentencia Audit All a varias tablas, donde en todas me dio
el mensaje "Auditora terminada con xito" hice una commit; y me vlido
"Validacin terminada".
Despus de efectuar cambios, creaciones de documento, confirmaciones, etc... en
el Programa de fox, he ejecutado la select en sql plus y me de el mensaje de
"ninguna fila seleccionada", lo he ejecutado desde el TOAD y sale vaco y desde el
Schema Browser he visualizado los datos de la tabla AUD$ y esta vaco.
Seguro que estoy haciendo algo mal, pero no lo detecto.
Un Saludo
Miguel :-)
PD:Por cierto, si lo consigo (con tu ayuda, evidentemente), hay manera de
desactivarlo?.
Se pueden seleccionar todas las tablas de una vez o hay que seleccionarlas una
por una?
el 9 dic. 02

Vamos a probar una cosa. No se exactamente que version de base de datos, con lo

(/usuarios/pedrito12)

que no estoy al 100% seguro de que est funcionando bien el parmetro en el init.
Ora. Ahora mismo deberas tenerlo as:
AUDIT_TRAIL=TRUE
No es asi?, pues bien si est as debera funcionar bien.
De no ser as, vamos a probar con esto:
AUDIT_TRAIL=DB
No debe llevar delante ningn carcter especial como # o? Cualquiera; no debe
llevar nada delante.
Un vez hayamos hecho el cambio en el fichero de inicializacin de parmetros de
la base de datos, debemos "rebotar" la base de datos.
AVISO: A veces puede ocurrir que tengamos ms de un fichero de inicializacin
de parmetros, y estemos haciendo cambios en un fichero que no vale, osea que
tienes que estar seguro de que los cambios los ests haciendo en el fichero

http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/oracle/r... 30/08/2015

Log de oracle - Oracle - Todoexpertos.com

Pgina 4 de 4

correcto. El fichero suele llamarse: init"SID". Ora es decir, si tu base de datos se


llama demo: initdemo. Ora amn de alguna diablurilla de alguien.
En caso de que anteriormente hayas hecho esto y no funcione, pues debes
decirme en que sistema operativo ests, con que usuario entras a la base de datos
para hacer los cambios, y amandarme el fichero de alert de la base de datos,
residente en: $ORACLE_HOME/rdbms/trace/alert.ora , generalmente suele estar
ah, a no ser de cambios por motivos de espacio o rendimiento.
Bueno, pues nada, prueba esto ltimo que te mando a ver que pasa.
RESUMEN: Vuelve a asegurarte de que el init. Ora tiene el cambio hecho y de que
sales guardando los cambios.
Apaga e inicia la base de datos
Conctate como SYS y activa las auditoras, siempre refirindote a las tablas
como: NombreDeUsuario. NombreDeTabla
Para desactivar una auditora bastar con poner la misma sentencia del objecto
que ests auditando, pero desauditando osea: noaudit.
noaudit all on PEDRO.DEMO;
Y te devolver algo as como :
Noauditora terminada con xito.
Espero que haya ms suerte la prxima vez. La verdad es que a mi tambin me
cost algo la primera vez que activ una auditora, porque son muchas cositas
que hacer y que mirar, activar, etc... pero debe funcionar, no tiene ms secreto
tampoco;
Cuando hayas activado las auditoras, intenta generar algn registro de auditora,
insertando, borrando algo sobre la tabla auditada y confirmando la transaccin
de modo que quede grabada. Realiza una seleccin del numero de registros que
haya en la tabla de auditora de la siguiente manera.
... incluso antes de empezar la auditora; primero cuenta cuantos registro hay.
Select count(*) from DBA_AUDIT_OBJECT;
Despus activa la auditora e intenta generar registros desde otro usuario.
Seguidamente valida y vuelve al usuario SYS y ejecuta nuevamente Select count
(*) from DBA_AUDIT_OBJECT;
Debera funcionar... de no ser as... bueno, no adelantemos acontecimientos...

http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/oracle/r... 30/08/2015

You might also like