On Wed, 6 Nov 2019 at 11:09, Robert Haas <robertmh...@gmail.com> wrote:

> On Tue, Nov 5, 2019 at 10:02 AM Alvaro Herrera <alvhe...@2ndquadrant.com>
> wrote:
> > There's a reason the SQL standard defines SET SESSION AUTHORIZATION but
> > no RESET SESSION AUTHORIZATION: once you enter a security context, you
> > cannot escape it.  ISTM that essentially we broke feature F321 "User
> > authorization" by adding RESET into the mix.  (I think RESET ROLE breaks
> > the spirit of feature T331 too.)  The SQL:2016 standard describes how
> > this is supposed to work in Foundation "4.40.1.1 SQL-session
> > authorization identifiers" (same section is numbered 4.35.1.1 in
> > SQL:2011), and ISTM we made a huge mess of it.
> >
> > I don't see how to fix it, though.  If we were to adopt the standard's
> > mechanism, we'd probably break tons of existing code.
>
> It wouldn't be difficult to introduce a new protocol-level option that
> prohibits RESET SESSION AUTHORIZATION; and it would also be possible
> to introduce a new protocol message that has the same effect as RESET
> SESSION AUTHORIZATION. If you do those two things, then it's possible
> to create a sandbox which the end client cannot escape but which the
> pooler can escape easily.
>

So where are we on this patch ? AFAICT using _pq is a protocol level option.


Dave Cramer

da...@postgresintl.com
www.postgresintl.com

Reply via email to