sábado, 8 de julho de 2017

Trigger de logon para ativar trace

Olá pessoal.

Tive uma necessidade a um tempo atrás de ativar um trace em uma detereminada sessão que viesse de um programa específico.

Coisa simples, então vou deixar documentado aqui para quem precisar a trigger de logon que eu usei.

create or replace trigger sys.LOGON_TRACE
      after logon on database
DECLARE
      v_username VARCHAR2(70);
      v_program  VARCHAR2(70);
BEGIN
      SELECT LOWER(USERNAME),
                      LOWER(PROGRAM)
      INTO  v_username,
                 v_program
      FROM sys.v_$session
      WHERE
                   sid = SYS_CONTEXT('USERENV', 'SID');

  -- if ora_login_user = 'MARIO' then   -- Se quiser utilizar a trigger em determinados logins
  IF (v_program = 'q_sender.exe' OR v_program='sqlplusw.exe')
  THEN
        EXECUTE IMMEDIATE 'ALTER SESSION SET sql_trace=TRUE';
        EXECUTE IMMEDIATE 'alter session set timed_statistics=true';
        EXECUTE IMMEDIATE 'alter session set max_dump_file_size=unlimited';
EXECUTE IMMEDIATE 'alter session set events=''10046 trace name context forever, level 12''';
  END IF;
END LOGON_TRACE;
/

Então é isso pessoal, simples e objetivo. 

Abraço
Mario

Nenhum comentário:

Postar um comentário

Isso te ajudou? Comente...

Postagem em destaque

[ORACLE] Batch change EDITIONABLE property.

Hello everyone. Hope you're doing well! Today, I have a simple case.   A test database had many database objects with the EDITIONABLE pr...