Para poder saber los cambios en cualquier esquema en oracle como cambios de columna en alguna tabla, drop de algun objeto etc. podemos utilizar un trigger.
El primer paso es crear una tabla como la que sigue:
Una vez creada creamos el trigger:
Y listo, ya con esto podemos hacer una prueba y debe de registrar todos los ddl que se ejecuten en la instancia.
Cabe mencionar que tomara tambien los cambios hechos por sys y system, asi que hay que crear la tabla en un TS que no vaya a dar problemas como tools o users.
Saludos.
El primer paso es crear una tabla como la que sigue:
CREATE TABLE "SYS"."AUDIT_TABLE" ("D" DATE, "OSUSER" VARCHAR2(255)
,"CURRENT_USER" VARCHAR2(255), "HOST" VARCHAR2(255), "TERMINAL" VARCHAR2(255), "OWNER" VARCHAR2(30), "TYPE" VARCHAR2(30), "NAME" VARCHAR2(30),
"SYSEVENT" VARCHAR2(30))
Una vez creada creamos el trigger:
CREATE OR REPLACE TRIGGER "SYS"."AUDIT_DDL_TRG" AFTER
DDL ON DATABASE begin
insert into audit_table(
d,
osuser,
current_user,
host,terminal,
owner,
type,
name,
sysevent
)
values(
sysdate,
sys_context('USERENV','OS_USER') ,
sys_context('USERENV','CURRENT_USER') ,
sys_context('USERENV','HOST') ,
sys_context('USERENV','TERMINAL') ,
ora_dict_obj_owner,
ora_dict_obj_type,
ora_dict_obj_name,
ora_sysevent
);
end;
Y listo, ya con esto podemos hacer una prueba y debe de registrar todos los ddl que se ejecuten en la instancia.
Cabe mencionar que tomara tambien los cambios hechos por sys y system, asi que hay que crear la tabla en un TS que no vaya a dar problemas como tools o users.
Saludos.
Comentarios
Publicar un comentario