Re: v16 roles, SET FALSE, INHERIT FALSE, ADMIN FALSE

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Pavel Luzanov <p(dot)luzanov(at)postgrespro(dot)ru>, Christophe Pettus <xof(at)thebuild(dot)com>, pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: v16 roles, SET FALSE, INHERIT FALSE, ADMIN FALSE
Date: 2024-07-08 21:59:51
Message-ID: CAKFQuwYdD-rUZy7nYCi0K-RxvL-=s1wMHU6hqdBNY7VsaCwv3A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Jul 8, 2024 at 2:16 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Pavel Luzanov <p(dot)luzanov(at)postgrespro(dot)ru> writes:
> > On 08.07.2024 22:22, Christophe Pettus wrote:
> >> This is more curiosity than anything else. In the v16 role system, is
> there actually any reason to grant membership in a role to a different
> role, but with SET FALSE, INHERIT FALSE, and ADMIN FALSE? Does the role
> granted membership gain any ability it didn't have before in that case?
>
> > Looks like there is one ability.
> > Authentication in pg_hba.conf "USER" field via +role syntax.
>
> Hmm, if that check doesn't require INHERIT TRUE I'd say it's
> a bug.
>
>
The code doesn't support that claim. It seems quite intentional that this
check is purely on membership - what with ACL having a dedicated function
for the purpose of checking plain recursive membership that only this and
the circularity check code use. I suppose it makes sense too - at least
unless you also check for SET - since it seems desirable to allow login as
a member role to a group you can only SET to and don't inherit from.

David J.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2024-07-08 22:08:50 Re: v16 roles, SET FALSE, INHERIT FALSE, ADMIN FALSE
Previous Message Pavel Luzanov 2024-07-08 21:23:18 Re: v16 roles, SET FALSE, INHERIT FALSE, ADMIN FALSE