From: | Joe Conway <mail(at)joeconway(dot)com> |
---|---|
To: | Dominique Devienne <ddevienne(at)gmail(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: "paths" between two ROLEs |
Date: | 2023-06-13 12:20:41 |
Message-ID: | ecc3930c-73e7-9807-2bef-141ea44cd9b5@joeconway.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 6/13/23 04:17, Dominique Devienne wrote:
> Hi. We emulated a legacy security model (enforced in C/C++ code)
> into "layers" of PostgreSQL ROLEs and GRANTs, thus enforced database-side.
>
> To troubleshoot and validate that emulation, I'd like to introspect ROLE
> membership to:
>
> 1) Output the ROLE "path(s)" between any two ROLEs. Typically between
> the LOGIN USER and the ROLE that control access to a particular SCHEMA.
> In our model, there can be several ways the two end-roles are connected,
> involving a variable number of roles. So it has to be a recursive query.
>
> 2) target-end ROLEs (controlling access to SCHEMAs, again) follow a
> naming convention, so they can be identified using a LIKE pattern.
> Output all target ROLEs (aggregating each "paths" to the source-ROLE in
> an text[]) a given LOGIN USER has access to.
>
> I'd appreciate either example SQL for the above; or hints to achieve the
> above.
> My CTE "foo" is not great, thus reaching out to the community to avoid
> wasting too much time on this on my own.
This shows the path between roles taken which provides a particular
privilege for a particular object:
https://github.com/CrunchyData/crunchy_check_access
It might do for you as-is, or at least you can use it as an example.
HTH,
--
Joe Conway
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2023-06-13 13:19:42 | Re: Support logical replication of DDLs |
Previous Message | Francisco Olarte | 2023-06-13 11:34:55 | Re: [Beginner Question] Will the backup wal file take too much storage space? |