› Fóruns › Banco de dados Oracle › RESOLVIDO – Trigger de Auditoria não realiza o gatilho › RESOLVIDO – Trigger de Auditoria não realiza o gatilho
Olá,
As triggers tipo on .SCHEMA tem um problema quando usadas dessa forma, somente serão disparadas quando o for o mesmo conectado, por exemplo:
Se você conectar com o user admdados, todos os comandos CREATE, ALTER e DROP serão registrados, porém….
Se você usar um usuário system por exemplo e efetuar o comando:
alter table admdados.tabela disable all triggers;
Esse comando não ficará nas suas tabelas, pois quem efetivamente está conectado é o user SYSTEM e ele faz a alteração na tabela do owner.
O ideal para essa sua situação é uma trigger on database, seria mais ou menos assim:
create or replace trigger admdados.tr_b_ddl_database
before create or drop or alter on database
E para controlar apenas o owner admdados use a opção ora_dict_obj_owner dentro do primeiro IF
IF ora_login_user NOT IN ('SYS', 'SYSTEM', 'DBSNMP','CONTROLEACESSO_PRODUCAO','SAT','USER_COPO','CARGA','SYSMAN','ADMDADOS') and
ora_dict_obj_owner = 'ADMDADOS' then ....
Com isso, qualquer usuário Oracle que conectar e tentar criar,alterar ou dropar já dispara a trigger (dentro das condições dela é claro).
Tente e qualquer coisa coloque aqui.
[]s Ishii
ps: se precisar me add no msn