Re: Auditing extension for PostgreSQL (Take 2) - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Auditing extension for PostgreSQL (Take 2)
Date
Msg-id 20150509224225.GI30684@momjian.us
Whole thread Raw
In response to Re: Auditing extension for PostgreSQL (Take 2)  (Stephen Frost <sfrost@snowman.net>)
List pgsql-hackers
On Thu, May  7, 2015 at 03:41:13PM -0400, Stephen Frost wrote:
> Bruce,
> > What is our history of doing things in contrib because we are not sure
> > what we want, then moving it into core?  My general recollection is that
> > there is usually something in the contrib version we don't want to add
> > to core and people are locked into the contrib API, so we are left
> > supporting it, e.g. xml2, though you could argue that auditing doesn't
> > have application lock-in and xml2 was tied to an external library
> > feature.
> 
> That's exactly the argument that I'd make there.  My recollection is
> that we did move pieces of hstore and have moved pieces of other contrib
> modules into core; perhaps we've not yet had a case where we've
> completely pulled one in, but given the relatively low level of
> dependency associated with pgAudit, I'm certainly hopeful that we'll be
> able to here.  Lack of history which could be pointed to that's exactly
> what I'm suggesting here doesn't seem like a reason to not move forward
> here though; the concept of having a capability initially in contrib and
> then bringing it into core has certainly been discussed a number of
> times on other threads and generally makes sense, at least to me,
> especially when there's little API associated with the extension.

OK, I am just asking so we remember this can go badly, not that it will.

> > I guess the over-arching question is whether we have to put this into
> > contrib so we can get feedback and change the API, or whether using from
> > PGXN or incrementally adding it to core is the right approach.
> 
> I'm surprised to hear this question of if we "have to" do X, Y, or Z.
> pgAudit brings a fantastic capability to PostgreSQL which users have
> been asking to have for many years and is a feature we should be itching
> to have included.  That we can then take it and incrementally add it to
> core, to leverage things which are only available in core (as discussed
> last summer, including grammar and relation metadata), looks to me like
> a great direction to go in and one which we could use over and over to
> bring new features and capabilities to PG.
> 
> Lack of auditing is one of the capabilities that users coming from other
> large RDBMS's see as preventing their ability to migrate to PostgreSQL.
> Other databases (open and closed source) have it and have had it for
> years and it's a serious shortcoming of ours that makes users either
> stick with their existing vendor or look to other closed-source or even
> open-source solutions.

Yes, more extensive auditing is definitely needed.

> > > involved in this discussion will be also.  Additionally, as discussed
> > > last summer, we can provide a migration path (which does not need to be
> > > automated or even feature compatible) from pgAudit to an in-core
> > > solution and then sunset pgAudit.
> > 
> > Uh, that usually ends badly too.
> 
> I'm confused by this, as it was the result of our discussion and your
> suggestion from last summer: 20140730192136.GM2791@momjian.us
> 
> I certainly hope that hasn't substantially changed as that entire
> discussion is why we're even able to have this discussion about
> including pgAudit now.  I was very much on-board with trying to work on
> an in-core solution until that thread convinced me that the upgrade
> concerns which I was worried about wouldn't be an issue for inclusion of
> an extension to provide the capability.

I had forgotten about that.  Yes, pg_upgrade can easily do this.

> > > Building an in-core solution, in my estimation at least, is going to
> > > require at least a couple of release cycles and having the feedback from
> > > users of pgAudit will be very valuable to building a good solution, but
> > > I don't believe we'll get that feedback without including it.
> > 
> > See above --- is it jump through the user hoops and only then they will
> > use it and give us feedback?  How motivated can they be if they can't
> > use the PGXN version?
> 
> Why wouldn't we want to include this capability in PG?  I also addressed
> the "why not PGXN" above.  It it not a lack of motivation but the entire
> intent and design of the PGXN system which precludes most large
> organizations from using it, particularly for sensitive requirements
> such as auditing.

So they trust the Postgres, but not the PGXN authors --- I guess legally
that makes sense.

> > The bottom line is that for the _years_ we ship pg_audit in /contrib, we
> > will have some logging stuff in postgresql.conf and some in
> > contrib/pg_audit and that distinction is going to look quite odd.  To
> > the extent you incrementally add to core, you will have duplicate
> > functionality in both places.
> 
> That's entirely correct, of course, but I'm not seeing it as an issue.
> I'm certainly prepared to support shipping pgAudit in contrib, as are
> others based on how this feature has been developed, for the years that
> we'll have 9.5, 9.6 (or 10.0, etc) supported- and that's also another
> reason why users will use it when they wouldn't use something on PGXN.
> 
> Further, I look forward to working incrementally to bring similar
> capability into core, but I suspect those increments will largely be in
> the infrastructure until we reach the point where we're able to provide
> the user-facing bits, which is quite likely to go in all at once and
> allow us a clear upgrade path from one to the other.  Perhaps that's
> optimistic, but we do tend to try and bring things in as whole
> capabilities rather than bits and pieces and I don't expect us to need
> to do it differently here.

OK, I just felt I had to ask those questions so we know where the
pitfalls are --- over-optimism always sets of alarms for me.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + Everyone has their own god. +



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: initdb -S and tablespaces
Next
From: Andres Freund
Date:
Subject: Re: Manipulating complex types as non-contiguous structures in-memory