Resúmen de pasos a seguir para auditar una base de datos Oracle:
1. alter system set audit_trail=DB scope=spfile;
2. Shutdown (clean) / Startup instance
3. Si quisieramos auditar quién, cuándo, desde dónde, etc. se conecta a nuestra instancia de Oracle:
audit create session whenever not successful;
o EL "CREATE SESSION" PUEDE CAMBIAR POR OTRO ARGUMENTO QUE SE DESEE AUDITAR
Por Ejemplo:
audit alter sequence Scott.SEQ_Name by session
audit select sequence Scott.SEQ_Name2 by session
Recuerda que existe una gran cantidad de argumentos que podemos auditar.
Para conocer qué se está auditando actualmente en nuestra base de datos:
SELECT * FROM DBA_STMT_AUDIT_OPTS;
4. Para detener la auditoría:
noaudit create...mismos parametros dados que en el paso 3 sin la opción "by session/whenever"
5. Script para detectar, en base a lo auditado en el paso 3, quién se ha conectado a nuestra instancia Oracle:
col terminal format a35
select count(*),username,terminal,to_char(timestamp,'DD-MON-YYYY')
from dba_audit_session
where returncode<>0
group by username,terminal,to_char(timestamp,'DD-MON-YYYY');
col terminal format a35
select count(*),username,terminal,to_char(timestamp,'DD-MON-YYYY'),returncode
from dba_audit_session
group by username,terminal,to_char(timestamp,'DD-MON-YYYY'),returncode;
Carlos Contreras
Oracle Certified DBA