Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 21/01/2011 13:03:21
- frantz
- Membre
liste des membres d'un groupe
Bonjour,
je cherche à récupérer tous les noms des membre d'un groupe (role) donné.
Merci d'avance.
Hors ligne
#2 21/01/2011 14:49:21
- Marc Cousin
- Membre
Re : liste des membres d'un groupe
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
#3 21/01/2011 14:55:56
- frantz
- Membre
Re : liste des membres d'un groupe
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
#4 21/01/2011 15:02:21
- Marc Cousin
- Membre
Re : liste des membres d'un groupe
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
#5 21/01/2011 15:22:41
- frantz
- Membre
Re : liste des membres d'un groupe
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
#6 21/01/2011 15:24:36
- Marc Cousin
- Membre
Re : liste des membres d'un groupe
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
#7 21/01/2011 15:49:41
- frantz
- Membre
Re : liste des membres d'un groupe
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
#8 21/01/2011 15:55:05
- Marc Cousin
- Membre
Re : liste des membres d'un groupe
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
#9 21/01/2011 15:59:04
- frantz
- Membre
Re : liste des membres d'un groupe
Effectivement, c'est plus simple et ça fonctionne !
Merci beaucoup !!
:-D
Hors ligne
Pages : 1