Hola de nuevo a todos, me gustaría me dieran vuestro consejo sobre lo siguiente:

Tengo este trigger(uno por tabla) y su function correspondiente(una por tabla), a parte de guardar los datos que se ven, es decir la tabla modificada, más el usuario, ip del mismo, fecha, hora y tipo de operación, debería guardar algún dato más para que el tema de auditorías fuera mas exacto o fiable?


CREATE TRIGGER audit_aux
  BEFORE INSERT OR UPDATE OR DELETE
  ON aux
  FOR EACH ROW
  EXECUTE PROCEDURE audit_aux();

CREATE OR REPLACE FUNCTION audit_aux()
  RETURNS trigger AS
$BODY$
begin
   IF (TG_OP = 'DELETE') THEN
            INSERT INTO audit.aux SELECT 
OLD.*,user,inet_client_addr()::varchar,now(),'B';
            RETURN OLD;
        ELSIF (TG_OP = 'UPDATE') THEN
            INSERT INTO audit.aux SELECT 
NEW.*,user,inet_client_addr()::varchar,now(),'U';
            RETURN NEW;
        ELSIF (TG_OP = 'INSERT') THEN
            INSERT INTO audit.aux SELECT  
NEW.*,user,inet_client_addr()::varchar,now(),'I';
            RETURN NEW;
        END IF;
        RETURN NULL;
end;$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION audit_aux() OWNER TO postgres;



Gracias
Un saludo
Suso
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a