Auditoria no Banco

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:
________________________________
Douglas - Madmax.

Informações do Ambiente:
* Versão do Oracle: 10g
* Sistema Operacional: Windows XP


Pessoal estou fazendo uma auditoria no banco para os user que logan nele.

Fiz uma trigger simples que pega usuario, terminal, data e hora do login:

Selecionar tudo

create or replace trigger
   logon_audit_trigger
   -- Trigger de Auditoria Logon User
AFTER LOGON ON DATABASE
BEGIN
insert into stats_user_log values(
   user,
   sys_context('USERENV','SESSIONID'),
   sys_context('USERENV','HOST'),
   null,
   null,
   null,
   sysdate,
   to_char(sysdate, 'hh24:mi:ss'),
   null,
   null,
   null
);
END;

alguém de vocês teriam um exemplo de trigger de auditoria melhor que possa disponibilizar ?

Obrigado.
RodrigoValentim
Moderador
Moderador
Mensagens: 367
Registrado em: Ter, 25 Mar 2008 3:41 pm
Localização: Salvador - BA
Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Melhor em que sentido?
Avatar do usuário
madmax
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 293
Registrado em: Qua, 13 Dez 2006 5:02 pm
Localização: São Paulo
Contato:
________________________________
Douglas - Madmax.

Olá Rodrigo beleza.

E que gostaria de colocar mais informações tipo ultimo select executado , nome do programa e etc..

Mas quando eu coloco desta maneira que esta comentado abaixo da erro no logon no usuario ( ORA-04098:TRIGGER 'SYSTEM.LOGON_AUDIT_TRIGGER' is invalid and failed

Selecionar tudo

create or replace trigger
   logon_audit_trigger
      -- Trigger de Auditoria Logon User
AFTER LOGON ON DATABASE
BEGIN
insert into stats_user_log values(
   user,
   sys_context('USERENV','SESSIONID'),
   sys_context('USERENV','HOST'),
   null, --(select program from v$session where     
    --   sys_context('USERENV','SESSIONID') = audsid),
   null, -- (select action from v$session where     
      -- sys_context('USERENV','SESSIONID') = audsid),
   null, -- (select module from v$session where     
       -- sys_context('USERENV','SESSIONID') = audsid),
   sysdate,
   to_char(sysdate, 'hh24:mi:ss'),
   null,
   null,
   null
);
END;
Mas quando eu comento os (select module from v$session where sys_context('USERENV','SESSIONID') = audsid)..

não da mais erro de logon..

Portanto gostaria de uma ajuda não consigo colocar o PROGRAM, ACTION e nem o MODULO dos login.

Qualquer ideia e bem vinda.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante