COMO REALIZAR UNA TRAZA DE UN USUARIO EN ORACLE

E-mail Imprimir PDF

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;
/

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);

 

Última actualización el Jueves, 14 de Febrero de 2013 13:02  

Haz login con tu cuenta orasite

Haz login con tu cuenta de:

Errores Oracle más comunes