Re: Why security-definer functions are executable by public by default? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Why security-definer functions are executable by public by default?
Date
Msg-id 4D9C873F.9020308@gmail.com
Whole thread Raw
In response to Re: Why security-definer functions are executable by public by default?  (hubert depesz lubaczewski <depesz@depesz.com>)
List pgsql-general
On 04/06/2011 07:41 AM, hubert depesz lubaczewski wrote:
> On Wed, Apr 06, 2011 at 09:06:50AM +0200, pasman pasmański wrote:
>>> was pointed to the fact that security definer functions have the same
>>> default privileges as normal functions in the same language - i.e. if
>>> the language is trusted - public has the right to execute them.
>>>
>>> maybe i'm missing something important, but given the fact that security
>>> definer functions are used to get access to things that you usually
>>> don't have access to - shouldn't the privilege be revoked by default,
>>> and grants left for dba to decide?
>>>
>>
>> you can create function in  schema accesible to dba only.
>
> sure. and I can revoke the privileges and grant the ones I need.
>
> I know I can *fix* it. But I just think that the default should be the
> same as with untrusted languages.

As was said earlier the point of SECURITY DEFINER is to allow
non-privileged users access to privileged content. When a trusted
function is created it is has the default of SECURITY INVOKER that
restricts it privileges to that of the calling user. Switching to
SECURITY DEFINER is a dba decision on grants already.

>
> depesz
>


--
Adrian Klaver
adrian.klaver@gmail.com

pgsql-general by date:

Previous
From: Carlos Mennens
Date:
Subject: Re: Auto Adjust Age
Next
From: Carlos Mennens
Date:
Subject: Re: Auto Adjust Age