Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/05/2007, 16h34   #1
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
Par défaut obtenir le rôle de l'utilsateur courant

Bonjour !

Je voudrais savoir comment faire pour récupérer les roles attribués à l'utilisateur courrant.

Imaginons que j'ai les roles suivants.
lecteur
administrateur

Et que j'ai un utilsateur ayant login 'jean'

jean est un lecteur :
GRANT lecteur TO jean

Maintenant comment faire dans mon application pour récupérer le nom du role attribué à jean ?
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 17h07   #2
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
regarde dans
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 18h49   #3
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
ça ne me donne pas d'information sur le role de mon utilisateur
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 19h08   #4
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
Citation:
Envoyé par icer
ça ne me donne pas d'information sur le role de mon utilisateur
Pas pg_rules, mais pg_roles :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
SELECT pg_authid.rolname, 
pg_authid.rolsuper, 
pg_authid.rolinherit,
pg_authid.rolcreaterole, 
pg_authid.rolcreatedb,
pg_authid.rolcatupdate, 
pg_authid.rolcanlogin,
pg_authid.rolconnlimit, 
'********'::text AS rolpassword,
pg_authid.rolvaliduntil, 
pg_authid.rolconfig, 
pg_authid.oid 
FROM 
pg_authid;
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 21h57   #5
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
Avec cette table j'ai des informations sur tous les rôles. Mais ce que je veux savoir c'est quel role a été attribué à un utilisateur.

par exemple dans ma table pg_roles j'ai les entrés suivantes

role
--------------
postgres
lecteur
jean

à partir du login de l'utilisateur (jean) je veux pouvoir obtenir son role (lecteur).
Comment faire ?
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 14h19   #6
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
Non, vraiment pas d'idée ?
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 14h47   #7
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
Je ne peux pas lancer la requête du boulot. Il y a des restrictions. Par contre, en faisant un where sur la colonne rolname, tu devrais avoir ce que tu recherches. Je ne vois pas trop où est le problème.
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 15h15   #8
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
C'est bon !
je peux obtenir les informations dont j'ai besoin en croisant les tables pg_roles et
pg_auth_members.
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 15h23   #9
Membre actif
 
Avatar de budtucker
 
Développeur multimédia
Inscription : avril 2007
Messages : 175
Détails du profil
Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : avril 2007
Messages : 175
Points : 174
Points : 174
Tu peux nous fournir le script ??

A+
budtucker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 15h40   #10
Membre éclairé
 
Avatar de icer
 
Inscription : janvier 2006
Messages : 332
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 332
Points : 308
Points : 308
Bien entendu :

Pour connaître le(s) role(s) de jean :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT rolname
FROM pg_roles
WHERE oid IN
(
    SELECT roleid 
    FROM pg_auth_members 
    WHERE member = 
    (
        SELECT oid 
        FROM pg_roles 
        WHERE rolname = 'jean'
    )
);
Il suffit de remplacer 'jean' par USER pour obtenir les roles de l'utilisateur courant.

On espérant que ça soit utile à quelqu'un d'autre
icer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h02.


 
 
 
 
Partenaires

Hébergement Web