On Wed, Oct 27, 2021 at 1:12 PM Mark Dilger
<mark.dil...@enterprisedb.com> wrote:
>
>
>
> > On Oct 27, 2021, at 9:26 AM, Joshua Brindle 
> > <joshua.brin...@crunchydata.com> wrote:
> >
> > As a follow-on to Conflation of member/privs for predefined roles,
> > this removes is_member_of_role from the header to dissuade it's use
> > for privilege checking. Since SET ROLE must use membership rather than
> > privileges a new, explicitly named can_set_role() function is
> > exported.
> >
> > is_member_of_role_nosuper() still exists for the following purposes:
> > - membership loop checking in user.c
> > - membership matching for pg_hba.conf in hba.c
> >
> > Other uses of is_member_of_role_nosuper() should be avoided.
> > <0001-unexport-is_member_of_role-add-can_set_role.patch>
>
> I don't understand the purpose of this.  You are defining 
> can_set_role(member,role) as a simple wrapper around 
> is_member_of_role(member,role).  Couldn't the comment:
>
> + *
> + * Do not use this for privilege checking, instead use has_privs_of_role()
>
> be added to the header for is_member_of_role() without needing the new 
> wrapper function?

It could be, but the intent is to dissuade it from being used, so
getting rid of it and making an explicit version that has a sole use
seemed useful.

It's possible that it's being used inappropriately out-of-tree so this
would also prevent that.


Reply via email to