Re: lowering privs in SECURITY DEFINER function - Mailing list pgsql-hackers

From A.M.
Subject Re: lowering privs in SECURITY DEFINER function
Date
Msg-id AE515B74-ED00-4F03-AFB4-41D2AB4714D5@themactionfaction.com
Whole thread Raw
In response to Re: lowering privs in SECURITY DEFINER function  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-hackers
On Apr 8, 2011, at 7:20 PM, Alvaro Herrera wrote:

> Excerpts from A.M.'s message of mié abr 06 19:08:35 -0300 2011:
>
>> That's really strange considering that the new role may not normally
>> have permission to switch to the original role. How would you handle
>> the case where the security definer role is not the super user?
>
> As I said to Jeff, it's up to the creator of the wrapper function to
> ensure that things are safe.  Perhaps this new operation should only be
> superuser-callable, for example.
>
>> How would you prevent general SQL attacks when manually popping the
>> authentication stack is allowed?
>
> The popping and pushing operations would be restricted.  You can only
> pop a single frame, and pushing it back before returning is mandatory.

It might be worth thinking about extending this functionality to cover the case for connection pooling. If some SQL can
"re-tool"an existing connection to have the properties of a new connection by a different role, then that would reduce
theuse-case of connection pooling. If that authorization chain can be pushed and popped by a password or some security
token,for example, then that would cover the use cases I mention in this thread: 

http://archives.postgresql.org/pgsql-general/2006-04/msg00917.php

Cheers,
M

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: \dO versus collations for other encodings
Next
From: Stephen Frost
Date:
Subject: Re: using a lot of maintenance_work_mem