otra de auditoría

From: suso <jlcubas(at)terra(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: otra de auditoría
Date: 2009-10-28 12:37:57
Message-ID: 4AE83B25.6030909@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Cesar Erices 2009-10-28 12:45:08 Re: [pgsql-es-ayuda] otra de auditoría
Previous Message Alvaro Herrera 2009-10-28 02:00:19 Re: Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] SOT: Ayuda con diseño de BD