Vous n'êtes pas identifié(e).
Pages : 1
Salut,
Je suis sur une petite appli qui doit gérer les droits PG pour une plus grosse et je bloque sur cette correspondance.
Le propriétaire de la base est aussi SU (pour accès aux tables système), et pour test, j'ai créé un groupe 'groupe01' & un user 'user01'.
SELECT * FROM pg_group me renvoie bien la correspondance user01-groupe01, par contre, je n'arrive pas à trouver ce qu'il me faut pour la correspondance propriétaire-group01 (afin de séparer les groupes de cette base de ceux des autres bases.)
SELECT * FROM pg_auth_members ne renvoie un row QUE si un user est déclaré dans le groupe (et là, ça va, puisque je retrouve mon grantor.)
Connaîtriez-vous une solution à mon casse-ctête? (sinon, la seule solution que je vois serait de créer un "dummy_user", appartenant à chaque groupe et n'ayant pas les droits de connexion, mais c'est plutôt bancal et potentiellement dangereux en cas d'oubli.)
Hors ligne
Vous ne trouvez pas parce que ça n'existe pas dans PostgreSQL. Les utilisateurs et les groupes sont déclarés pour l'instance. Ils ne font pas partie d'une base de données particulière, ils sont disponibles sur toutes.
(en espérant que j'ai bien compris la question...)
Guillaume.
Hors ligne
Pour l'universalité des groups/users dans un même cluster PG, je l'ai bien compris puisque les docs sont claires et que je les "vois" à partir de ma base de test.
Je vais essayer d'être plus clair: Base = DB1 - Owner = ZEBOSS - Groupe (vide pour l'instant) créé par ZEBOSS = GRP1
SELECT* FROM pg_auth_members; => Table vide
CREATE GROUP grp1;
SELECT* FROM pg_auth_members; => Table toujours vide >>> ICI se tient mon PB: comment récupérer seulement les noms/oids des groupes créés par ZEBOSS?
CREATE USER usr1 IN GROUP grp1;
SELECT* FROM pg_auth_members; => 162111 / 162113 / 156540 / F <=> Là c'est bon, MAIS il a fallu ajouter un user dans le groupe pour qu'il devienne "visible"
PB: Comment récupérer tous les groupes (VIDES et NON-VIDES [mais là, je sais faire]), créés par ZEBOSS ?
Jiff
PS: Me dit pas vous, j'ai l'impression d'être un vieux.
PS2: J'ai malheureusement l'impression qu'il va me falloir mettre ces groupes vides dans une table de référence pour savoir qu'il appartiennent à ZEBOSS!?
Dernière modification par Jiff (13/08/2009 15:36:27)
Hors ligne
Ceci doit fonctionner :
SELECT pg_authid.rolname AS groname, pg_authid.oid AS grosysid, ARRAY( SELECT pg_auth_members.member
FROM pg_auth_members
WHERE pg_auth_members.roleid = pg_authid.oid) AS grolist
FROM pg_authid
WHERE NOT pg_authid.rolcanlogin;
C'est le code de la vue pg_group.
Guillaume.
Hors ligne
Concernant le créateur des rôles, cette information n'est pas conservée.
Guillaume.
Hors ligne
>> Concernant le créateur des rôles, cette information n'est pas conservée.
Ok, j'ai ma réponse: ça confirme keskejpensè; il *faut* que je double la manip de création avec l'inclusion du nom de groupe dans une table séparée.
Merci
Hors ligne
Pages : 1