Pular para o conteúdo

Fóruns Banco de dados Oracle RESOLVIDO – Trigger de Auditoria não realiza o gatilho RESOLVIDO – Trigger de Auditoria não realiza o gatilho

#97240
Ishii
Participante

    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