Re: SQL-standard function bodies and creating SECURITY DEFINER routines securely - Mailing list pgsql-docs

From Noah Misch
Subject Re: SQL-standard function bodies and creating SECURITY DEFINER routines securely
Date
Msg-id 20220912044647.GA1404410@rfd.leadboat.com
Whole thread Raw
In response to Re: SQL-standard function bodies and creating SECURITY DEFINER routines securely  (Peter Eisentraut <peter.eisentraut@enterprisedb.com>)
Responses Re: SQL-standard function bodies and creating SECURITY DEFINER routines securely  (Bruce Momjian <bruce@momjian.us>)
List pgsql-docs
On Thu, Sep 08, 2022 at 01:20:31PM +0200, Peter Eisentraut wrote:
> On 01.09.22 03:11, Bruce Momjian wrote:
> >On Tue, Aug 16, 2022 at 03:38:13PM -0400, Bruce Momjian wrote:
> >>On Tue, Aug 16, 2022 at 03:34:22PM -0400, Tom Lane wrote:
> >>>Bruce Momjian <bruce@momjian.us> writes:
> >>>>I have written the attached patch to mention this issue about sql_body
> >>>>functions.
> >>>
> >>>Spell-check, please.  Seems OK otherwise.

> >Patch applied back to PG 10.  Thanks.
> 
> This feature is new in PG 14, so backpatching further than that doesn't make
> sense.

Even an sql_body function should override search_path, because it may call
other code that reacts to search_path.  Separately, the new sentence is near
the start of a section that addresses more than just search_path.  The section
ends with the "revoke the default PUBLIC privileges" topic, which is no less
relevant to sql_body functions.

Documentation needn't explain cases that make a best practice optional, and it
should explain only valuable ones.  Omitting search_path on sql_body SECURITY
DEFINER functions isn't that valuable.  If it were valuable, the patch's
sentence gives too little detail for the reader to decide what's safe for a
given function.  I think this section should not attempt such detail.  It's
enough to give the best practice, as the documentation did before this change.



pgsql-docs by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: how to check specific user_name have “SELECT ON ALL TABLES IN SCHEMA ” privilege or not ?
Next
From: "yanliang lei"
Date:
Subject: suggest about bpchar data type in the document