On Wed, Jan 11, 2023 at 2:16 PM Robert Haas <robertmh...@gmail.com> wrote:

> On Wed, Jan 11, 2023 at 4:00 PM Tom Lane <t...@sss.pgh.pa.us> wrote:
> > Robert Haas <robertmh...@gmail.com> writes:
> > > If you want to make safe a SECURITY DEFINER function written using sql
> > > or plpgsql, you either have to schema-qualify every single reference
> > > or, more realistically, attach a SET clause to the function to set the
> > > search_path to a sane value during the time that the function is
> > > executing. The problem here can be handled the same way, except that
> > > it's needed in a vastly more limited set of circumstances: you have to
> > > be calling a SECURITY DEFINER function that will execute CREATE ROLE
> > > as a non-superuser (and that user then needs to be sensitive to the
> > > value of this GUC in some security-relevant way). It might be good to
> > > document this -- I just noticed that the CREATE FUNCTION page has a
> > > section on "Writing SECURITY DEFINER Functions Safely" which talks
> > > about dealing with the search_path issues, and it seems like it would
> > > be worth adding a sentence or two there to talk about this.
> >
> > OK, I'd be satisfied with that.
>
> OK, I'll draft a patch tomorrow.
>
>
Justed wanted to chime in and say Robert has eloquently put into words much
of what I have been thinking here, and that I concur that guiding the DBA
to use care with the power they have been provided is a sane position to
take.

+1, and thank you.

David J.

Reply via email to