Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
je cherche à récupérer tous les noms des membre d'un groupe (role) donné.
Merci d'avance.
Hors ligne
Cette information est stockée dans pg_auth_members. Il faudra la jointurer avec pg_roles (sur la colonne cachée oid).
Marc.
Hors ligne
C'est effectivement dans ces tables et sur cet attribut qu'avaient abouti mes recherches.
Malheureusement, mes connaissances en SQL ne sont plus toutes fraîches et je ne sais plus faire :-(
Hors ligne
SELECT grantor.rolname as grantor, member.rolname as member from pg_auth_members join pg_roles member on (pg_auth_members.member=member.oid) join pg_roles grantor on (pg_auth_members.grantor=grantor.oid);
Marc.
Hors ligne
Ta requête me donne la liste de tous les noms des membre de tous les groupes avec leur grantor.
Or j'aurais besoin de la liste de tous les noms des membre d'un groupe donné. Je n'ai pas besoin
de l'information sur le grantor.
Hors ligne
Effectivement, je l'ai fait un peu rapidement :
SELECT role.rolname as role, member.rolname as member from pg_auth_members join pg_roles member on (pg_auth_members.member=member.oid) join pg_roles role on (pg_auth_members.roleid=role.oid);
Mais vous auriez pu le corriger vous même, le passage de l'un à l'autre est trivial.
Marc.
Hors ligne
Bon ça n'est pas encore ça. Là ça donne tous les groupes avec tous leurs membres.
Je voudrais obtenir les membres pour un seul groupe dont je mettrais le nom dans la requête.
En me basant sur ta requête et pour un groupe appelé legroupe, la requêtre suivante fonctionne,
mais il y a sans doute plus simple :
select member from (SELECT role.rolname as role, member.rolname as member from pg_auth_members join pg_roles member on (pg_auth_members.member=member.oid) join pg_roles role on (pg_auth_members.roleid=role.oid) ) as membres where role='legroupe';
Hors ligne
select member.rolname as member from pg_auth_members join pg_roles member on (pg_auth_members.member=member.oid)
where pg_auth_members.roleid in ( select oid from pg_roles where rolname = 'legroupe');
Marc.
Hors ligne
Effectivement, c'est plus simple et ça fonctionne !
Merci beaucoup !!
:-D
Hors ligne
Pages : 1