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