Pessoal,
Peguei umas idéias na internet e fiz uma auditoria de DDLs
CREATE SCHEMA audit;
CREATE TABLE audit.Auditoria (
Data TIMESTAMP,
Usuario varchar(50) ,
Aplicacao varchar(50),
IP varchar(50),
Query varchar(500)
);
CREATE OR REPLACE FUNCTION audit.fn_ddl_trigger()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
BEGIN
insert into audit.Auditoria
(Data,
Usuario,
Aplicacao,
IP,
Query)
values
(current_timestamp,
session_user,
(SELECT setting FROM pg_settings WHERE name = 'application_name') ,
inet_client_addr(), -- client_addr
current_query());
END;
$$;
CREATE EVENT TRIGGER ddl_trigger ON ddl_command_start
EXECUTE PROCEDURE audit.fn_ddl_trigger();
Só que queria inserir na tabela Auditoria, o nome da tabela e a ação
executada (DROP, CREATE, etc).
Na versão original essas variáveis aparecem na current_query() mas queria
em colunas separadas.
Queria também o usuário de SO que executou,
Tem como? Alguma variável de ambiente, da trigger, etc
Atenciosamente,
Luiz Carlos
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral