2009/12/11 Tiago Adami <[email protected]>
> 2009/12/11 Andre Lopes <[email protected]>:
> > Boas,
> >
> ...
> >
> > A minha pergunta... Como fazem auditoria a DELETE's?
>
Oi Andre, vou te passar um exemplo da faculdade :) (foi feito para o Oracle,
mas espero que te de uma ideia e te ajude ;)
CREATE TABLE AUDITORIA (
TABELA VARCHAR2(50) NOT NULL,
DATA DATE NOT NULL,
OPERACAO CHAR(1) NOT NULL,
USUARIO VARCHAR2(50) NOT NULL,
DADOS VARCHAR2(2000) NOT NULL
);
CREATE TRIGGER TRG_AUDIT_EMPREGADO
AFTER DELETE OR INSERT OR UPDATE
ON EMPREGADO
FOR EACH ROW
DECLARE
DADOS VARCHAR2(2000);
BEGIN
IF DELETING THEN
DADOS := 'CÓDIGO : '|| :OLD.CODEMP || ‘ NOME : '|| :OLD.NOME || ‘
SALÁRIO : '|| :OLD.SALARIO;
INSERT INTO AUDITORIA VALUES('EMPREGADO',SYSDATE,'D',USER,DADOS);
END IF;
IF INSERTING THEN
DADOS := 'CÓDIGO : '|| :NEW.CODEMP || ‘ NOME : '|| :NEW.NOME
|| ‘ SALÁRIO : '|| :NEW.SALARIO;
INSERT INTO AUDITORIA VALUES('EMPREGADO',SYSDATE,'I',USER,DADOS);
END IF;
IF UPDATING THEN
DADOS := 'CÓDIGO OLD: '|| :OLD.CODEMP || ‘ NOME OLD: '|| :OLD.NOME
|| ‘ SALÁRIO OLD: '|| :OLD.SALARIO ||
'CÓDIGO NEW: '|| :NEW.CODEMP || ‘ NOME NEW: '|| :NEW.NOME
|| ‘ SALÁRIO NEW: '|| :NEW.SALARIO;
INSERT INTO AUDITORIA VALUES('EMPREGADO',SYSDATE,'U',USER,DADOS);
END
IF;
32
END;
--
Lucas de Souza D'Ávila
Graduando em Sistemas de Informação - CV Lattes:
http://lattes.cnpq.br/9245658982061645
http://twitter.com/lucasdsd
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral