COMO REALIZAR UNA TRAZA DE UN USUARIO EN ORACLE

Anuncio
COMO REALIZAR UNA TRAZA DE UN USUARIO EN ORACLE - Auditoria - Orasite.com
Escrito por Administrator
Jueves, 14 de Febrero de 2013 12:48 - Actualizado Jueves, 14 de Febrero de 2013 13:02
Introducción
Hay varias formas de habilitar la traza de usuario en oracle. A continuación veremos algunas
formas de hacerlo.
Prerequisitos
Modificar los parámetros timed_statistics y max_dump_file_size en caso de no estar
seteados a
true y unlimited
.
SQL> alter system set timed_statistics=true;
SQL> alter system set max_dump_file_size=unlimited; Trazando la session actual de
usuario
Para iniciar la sesión de usuario ejecutamos lo siguiente
SQL> ALTER SESSION SET SQL_TRACE = TRUE;
-- ejecutamos las sentencias- SQL> ALTER SESSION SET SQL_TRACE = FALSE;
Para saber dónde guarda oracle sus trazas podemos ejecutar la siguiente consulta:
SQL> select * from v$diag_info; Trazando sesión de usuario con un trigger
Al usuario al que queramos habilitarle la traza le creamos los siguientes triggers
Para ejecutarse cuando abra sesión
create or replace trigger user_logon_trg
after logon on database
begin
if USER = 'xxxx' then
execute immediate
'Alter session set events ''10046 trace name context forever, level 8''';
end if;
end;
/
1/2
COMO REALIZAR UNA TRAZA DE UN USUARIO EN ORACLE - Auditoria - Orasite.com
Escrito por Administrator
Jueves, 14 de Febrero de 2013 12:48 - Actualizado Jueves, 14 de Febrero de 2013 13:02
Para ejecutarse cuando se desconecte
create or replace trigger user_logoff_trg
before logoff on database
begin
if USER = 'xxxx' then
execute immediate
'Alter session set events ''10046 trace name context off''';
end if;
end;
/ Trazar la sesión de otro usuario
Para ello necesitamos saber el sid y el serial# de la sesión que queremos trazar. Esta
información la podemos obtener haciendo un select a la vista
v$session
;
El ejemplo está puesto con un id=20 y un serial#=225
Para empezar a ejecutar la traza lanzamos lo siguiente
exec sys.dbms_system.SET_BOOL_PARAM_IN_SESSION(20, 225, 'sql_trace', TRUE);
-- ejecutamos las sentencias-Para parar la traza
exec sys.dbms_system.SET_BOOL_PARAM_IN_SESSION(20, 225, 'sql_trace', FALSE);
2/2
Descargar