Monitorear cambios de los datos de las tablas
Necesito determinar quien cambio un determinado dato de un tabla como una auditoria, alguien me esta cambiando los datos y necesito saber quien, no se si abara alguna herramienta de oracle que me permita determinar este problema. Les agradeceria que medieran una mano. Gracias...
una forma sencilla y que hemos utilizado en mi empresa es agregar a las tablas columnas de usuario_modifica y fecha_modificado y luego crear un trigger sobre la tabla, algo así:
CREATE OR REPLACE TRIGGER TRG_RUB_AUDI_UPD
BEFORE UPDATE
ON RUBROS
FOR EACH ROW
begin
IF :new.modif_date IS NULL THEN
:new.modif_date:=sysdate;
END IF;
IF :new.modif_user IS NULL THEN
:new.modif_user:=user;
END IF;
end;
CREATE OR REPLACE TRIGGER TRG_RUB_AUDI_UPD
BEFORE UPDATE
ON RUBROS
FOR EACH ROW
begin
IF :new.modif_date IS NULL THEN
:new.modif_date:=sysdate;
END IF;
IF :new.modif_user IS NULL THEN
:new.modif_user:=user;
END IF;
end;
