On Fri, Feb 11, 2022 at 05:05:20PM -0500, Tom Lane wrote:
> Bryn Llewellyn <b...@yugabyte.com> writes:
> > I confess that I'm surprised by the choice of the default behavior. It 
> > seems to be at odds with the principle of least privilege that insists that 
> >  you actively opt in to any relevant privilege.
> 
> I'd be the first to agree that this behavior sacrifices security
> principles for convenience.  However, it's not that big a deal
> in practice, because functions that aren't SECURITY DEFINER can't
> do anything that the caller couldn't do anyway.  You do need to
> be careful about the default PUBLIC grant if you're making a
> SECURITY DEFINER function, but that's a minority use-case.

How would you do that securely?  Create the function and set its
permissions in a transaction block?

> (I wonder if it'd be practical or useful to emit a warning when
> granting permissions on an object that already has a grant of
> the same permissions to PUBLIC.  That would at least cue people
> who don't understand about this behavior that they ought to look
> more closely.)

Agreed.

-- 
  Bruce Momjian  <br...@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  If only the physical world exists, free will is an illusion.



Reply via email to