Re: Q: GRANT ... WITH ADMIN on PG 17 - Mailing list pgsql-general

From Dominique Devienne
Subject Re: Q: GRANT ... WITH ADMIN on PG 17
Date
Msg-id CAFCRh--J96OtjyH8ow5bosKy9J7jqQw-gupYhHhP9QTLK-XwaQ@mail.gmail.com
Whole thread Raw
In response to Re: Q: GRANT ... WITH ADMIN on PG 17  (Pavel Luzanov <p.luzanov@postgrespro.ru>)
Responses Re: Q: GRANT ... WITH ADMIN on PG 17
List pgsql-general
On Mon, Aug 25, 2025 at 2:22 PM Pavel Luzanov <p.luzanov@postgrespro.ru> wrote:
>> On 22.08.2025 11:40, Laurenz Albe wrote:
>> Yes, that should work as follows: [...]

> [...] A safer option is to use security definer function to grant membership

FWIW, it's basically what I did.

My primary "admin" application role lost CREATEROLE,
and instead gained EXECUTE on security-definer procs
from a new lower-level role (with CREATEROLE),
in a new separate schema, which does all create/drop
roles or grant/revoke DDLs.

Which has the added benefits to enforce naming conventions for roles,
to enforce grants are only between our "per-DB" roles,
and made it easy to generate an audit-log for all those DDLs.

So the v16 ROLE changes created a BIG MESS for us,
slowing us down quite a bit, but we ended up with a much
better "v2" architecture, so it was not all a loss... YMMV.

So +1 to Pavel. --DD



pgsql-general by date:

Previous
From: Pavel Luzanov
Date:
Subject: Re: Q: GRANT ... WITH ADMIN on PG 17
Next
From: hubert depesz lubaczewski
Date:
Subject: Re: Streaming replica hangs periodically for ~ 1 second - how to diagnose/debug