Re: pgaudit - an auditing extension for PostgreSQL

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
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:49:25
Message-ID: 20140730184925.GX5475@eldon.alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Stephen Frost wrote:
> * 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 as we'd then have to figure out how to make pg_upgrade deal with
> moving such a configuration from the extension's table or from
> reloptions into SQL commands which work against the version of PG which
> implements the capability in core.

I think you're making too much of this upgrade issue. Consider
autovacuum's history: in its initial form, we made it configurable per
table by asking users to insret rows in the pg_autovacuum catalog. It
was a pretty horrible user interface, it was very error prone, it didn't
survive dump/restore cycles (And autovacuum was a core feature, not an
extension). We were able to iron out a lot of issues during those
initial two releases with the accumulated experience. We eventually
replaced the interface with reloptions (ALTER TABLE SET), which is what
we have today. We didn't add pg_upgrade code to migrate settings from
the old way to the new one; users who wished to do this were responsible
for handling it for themselves.

Sure, we're a more mature project now and our standards are higher. So
I think we should provide documented procedures to upgrade from pgaudit
to integrated feature; but that should suffice.

> My concern is:
>
> pg_upgrade then has to detect, understand, and implement a migration
> path from 10.0-with-pgaudit to 10.1-in-core-auditing.

Or we can just ask users to run commands X, Y, Z to migrate their old
configuration to the new integrated thing. No need for pg_upgrade
procedures.

> The PG 10.1 patch has to ensure that it doesn't break, harm, or
> interfere with what pgaudit is doing in its per-role auditing.

Or pgaudit goes away, having fulfilled its mission in life which was to
serve as audit mechanism for the older releases.

> The PG 10.1 patch is bounced because what pgaudit does is considered
> "good enough" and it's already in contrib (though I don't believe this
> will ever be the case while pgaudit exists as an extension- see
> below).

I don't fear this will happen, either, so why mention it?

--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Stephen Frost 2014-07-30 18:50:21 Re: pgaudit - an auditing extension for PostgreSQL
Previous Message Bruce Momjian 2014-07-30 18:34:51 Re: pgaudit - an auditing extension for PostgreSQL