Re: question on audit columns - Mailing list pgsql-general

From Greg Sabino Mullane
Subject Re: question on audit columns
Date
Msg-id CAKAnmm+jC-a_z_UBC5bjw5=gGc4uf3CRvQ4EOgOhO0XOvt95og@mail.gmail.com
Whole thread Raw
In response to Re: question on audit columns  (Johannes Lochmann <johannes.lochmann@gmail.com>)
List pgsql-general
As far as the application being able to change those fields itself, you can prevent that via column permissions, by leaving out the four audit columns and doing something like:

GRANT INSERT (email, widget_count), UPDATE (email, widget_count) ON TABLE foobar TO PUBLIC;

That way, inserts are guaranteed to use the default values of current_timestamp() and current_user. And a BEFORE UPDATE trigger ensures it changes the other two fields via the trigger function only.

Cheers,
Greg

P.S. Also check out https://www.pgaudit.org/ (PGAudit) as an alternative approach, which puts the information into your Postgres logs, rather than in the tables themselves.  

pgsql-general by date:

Previous
From: Ron Johnson
Date:
Subject: Re: Help with restoring database from old version of PostgreSQL
Next
From: Adrian Klaver
Date:
Subject: Re: postgresql-17.0-1 Application - silent installation Issue