Rechercher les utilisateurs dans un groupe

Objectif : afficher les membres d'un groupe.

select rg.rolname, users.rolname, users.rolvaliduntil from pg_catalog.pg_roles rg
join pg_catalog.pg_auth_members m on (m.roleid = rg.oid)
join pg_catalog.pg_roles users on (users.oid = m.member)
where rg.rolname like 'diadanalyse%'
order by 1, 2;

Ici, les membres faisant partie d'un groupe commençant par diadanalyse sont affichés.

Variante pour afficher les groupes auxquels une personne appartient :

select rg.rolname, users.rolname from pg_catalog.pg_roles rg

join pg_catalog.pg_auth_members m on (m.roleid = rg.oid)

join pg_catalog.pg_roles users on (users.oid = m.member)

where user.rolname = 'login'

order by 1, 2;