Re: use has_privs_of_role() for pg_hba.conf - Mailing list pgsql-hackers

From Joshua Brindle
Subject Re: use has_privs_of_role() for pg_hba.conf
Date
Msg-id CAGB+Vh5epaDEu7aRokcuc_a7yG0B49u9ebpdViJHpyFN-exJtQ@mail.gmail.com
Whole thread Raw
In response to use has_privs_of_role() for pg_hba.conf  (Nathan Bossart <nathandbossart@gmail.com>)
Responses Re: use has_privs_of_role() for pg_hba.conf  (Nathan Bossart <nathandbossart@gmail.com>)
List pgsql-hackers
On Fri, Apr 1, 2022 at 6:06 PM Nathan Bossart <nathandbossart@gmail.com> wrote:
>
> Hi hackers,
>
> 6198420 ensured that has_privs_of_role() is used for predefined roles,
> which means that the role inheritance hierarchy is checked instead of mere
> role membership.  However, inheritance is still not respected for
> pg_hba.conf.  Specifically, "samerole", "samegroup", and "+" still use
> is_member_of_role_nosuper().
>
> The attached patch introduces has_privs_of_role_nosuper() and uses it for
> the aforementioned pg_hba.conf functionality.  I think this is desirable
> for consistency.  If a role_a has membership in role_b but none of its
> privileges (i.e., NOINHERIT), does it make sense that role_a should match
> +role_b in pg_hba.conf?  It is true that role_a could always "SET ROLE
> role_b", and with this change, the user won't even have the ability to log
> in to run SET ROLE.  But I'm not sure if that's a strong enough argument
> for deviating from the standard role privilege checks.
>
> Thoughts?
>

Good catch, I think this is a logical followup to the previous
has_privs_of_role patch.

Reviewed and +1



pgsql-hackers by date:

Previous
From: Jesper Pedersen
Date:
Subject: Re: GSoC: pgmoneta, storage API
Next
From: David Steele
Date:
Subject: Re: Postgres restart in the middle of exclusive backup and the presence of backup_label file