› Fóruns › Banco de dados Oracle › Consultar DDL exec em sessão › Consultar DDL exec em sessão
Olá,
Eu uso uma trigger também alimentando numa tabela:
table:
MACHINE VARCHAR2(64)
OSUSER VARCHAR2(30)
USERNAME VARCHAR2(30)
OBJECTNAME VARCHAR2(128)
DATEUPDATE DATE
COMMAND VARCHAR2(30)
Corpo da Trigger
create or replace trigger audit_objects
before DDL on .SCHEMA
declare
-- Variaveis de Sessao
vMachine v_$session.MACHINE%type;
vOsUser v_$session.OSUSER%type;
begin
-- Capturando informacoes
select machine, osuser
into vMachine, vOsUser
from v_$session
where sid = SYS_CONTEXT ('USERENV', 'SID') ;
insert into AUD_TAB_OBJECTS
values
(vMachine,vOsUser, user, ora_dict_obj_name, sysdate,ora_sysevent );
end audit_objects;
Troque o OWNER pelo usuário que você quer controlar…
Com isso na tabela você terá:
A máquina que efetuou a alteração, o usuário do SO, o Usuário do Oracle, o nome do Objeto alterado, sysdate, e o comando (alter, create, drop).
Pode fazer as alterações que achar pertinente para esse controle.
[]s Ishii