Re: pgaudit - an auditing extension for PostgreSQL

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Stephen Frost <sfrost(at)snowman(dot)net>
Cc: Bruce Momjian <bruce(at)momjian(dot)us>, Simon Riggs <simon(at)2ndQuadrant(dot)com>, Abhijit Menon-Sen <ams(at)2ndQuadrant(dot)com>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, Ian Barwick <ian(at)2ndQuadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pgaudit - an auditing extension for PostgreSQL
Date: 2014-07-30 18:58:04
Message-ID: 11546.1406746684@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Stephen Frost <sfrost(at)snowman(dot)net> writes:
> * Bruce Momjian (bruce(at)momjian(dot)us) wrote:
>> Actually, thinking more, Stephen Frost mentioned that the auditing
>> system has to modify database _state_, and dumping/restoring the state
>> of an extension might be tricky.

> This is really true of any extension which wants to attach information
> or track things associated with roles or other database objects. What
> I'd like to avoid is having an extension which does so through an extra
> table or through reloptions or one of the other approaches which exists
> in contrib and which implements a capability we're looking at adding to
> core

We have core code that uses reloptions --- autovacuum for instance ---
so I'm not exactly clear on why that's so unacceptable for this.

If the concern is that the required metadata is going to change over time,
I'd suggest that maybe an extension is the right place for it,
permanently. We have some infrastructure for extension version upgrades,
which could cope with metadata changes. There's not nearly as much
provision for changes of core state.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Daniele Varrazzo 2014-07-30 18:59:46 Fixed redundant i18n strings in json
Previous Message Stephen Frost 2014-07-30 18:50:21 Re: pgaudit - an auditing extension for PostgreSQL