|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Bonsoir tout le monde;
Voilà, mon problème est : quel est le moyen de tester si un utilisateur existe sur un serveur Firebird? (nb. sans se préoccuper ni des bases de données ni des privilèges). J'ai utilisé le composant IBSecurityService mais je me suis retrouver dans une ambigüité que je n'ai pas pu la résoudre; http://www.developpez.net/forums/d10...yservice-role/ alors je cherche un autre moyen plus efficace. Sachant que l'utilisateur qui va tester est un co-admin c-a-d ayant u le role RDB$ADMIN. |
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Apparemment, ce n'est pas possible pour l'instant;
L'équipe projet Firebird n'a pas encore donner la possibilité au utilisateur ayant u le role rdb$admin de faire ce type de test. Je me suis débrouillé pour faire passer les choses en tentant de créer l'utilisateur en question est si une erreur ce produit c'est qu'il existe : Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 213 ![]() |
gsec le permet
http://firebirdsql.org/manual/gsec-cmdline.html L'api des services aussi Code :
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
||
|
00
|
|
|
#4 | ||||
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Même ces options ne répondent pas à la demande.
IBSecurityService donne les résultats voulus si on met : Code :
Et si B peut ajouter un utilisateur, il doit pouvoir vérifier s'il existe pour ne pas provoquer des exceptions. Cependant, B n'a aucun moyen de faire ce test, c-a-d : Code :
Code :
fbsvcmgr service_mgr -user B -password passB -action_display_user |
||||
|
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Je viens de tester l'utilitaire gsec; ça marche mais seulement en ligne de commande :
si j'écris : Code :
Finalement, tout est Ok pour firebird, il ne reste que chercher comment récupérer ces résultats par les applications. Est ce qu'il n'y a pas un moyen pour récupérer le résultat de gsec? : Code :
gsec -user B -password passB -role rdb$admin -display |
||
|
|
00
|
|
|
#6 | ||
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Oh Alhamdou lilah;
Contrairement à IBSecurityService qui ne répond pas à la nouvelle option rdb$admin, j'ai tester et ça marche très bien avec le composant de UIB2.5 UIBSecurity1; Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Je n'ai rien compris
![]() Et bien même uibsecurity ne créer pas des utilisateur si on se connecte par un utilisateur de role rdb$admin. C-a-d uibsecurity liste bien les utilisateurs mais ne créer pas de nouvel utilisateur tout simplement car il n'y a aucun moyen pour spécifier la base de donnée relative. Ainsi, on peut lister les utilisateurs par uibsecurity et pour ajouter il faut formuler une requête 'create user ' |
|
|
00
|
|
|
#8 |
|
Membre éprouvé
![]() Analyste-développeur Inscription : mai 2002 Messages : 989 ![]() |
Et votre problème.... es-ce qu'il est réglé ?
__________________
Seul le Savoir est le Pouvoir |
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Il est réglé avec ce bricolage.
La note est que IBSecurityService ne fait pas l'affaire; et un utilisateur de rôle rdb$admin ne peut pas ajouter les utilisateur avec UIBSecurity, il ne peut que lister les utilisateurs existants. |
|
|
00
|
|
|
#10 | ||
|
Membre éprouvé
![]() Analyste-développeur Inscription : mai 2002 Messages : 989 ![]() |
Essayez avec ça :
Code sql :
Récupère le user si il existe. Aprés création du user il ne doit pas avoir forcément le role rdb$admin.
__________________
Seul le Savoir est le Pouvoir |
||
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Le problème est de tester l’existence de l'utilisateur indépendamment de la base de données c-a-d sans ce référer à une DB ou une autres.
On veut savoir si l'utilisateur existe sur le serveur. Dans tout les cas, c'est bon... le composant UIBSecurity fait l'affaire et donne la liste des utilisateurs sur le serveur. Merci freud. |
|
|
00
|
|
|
#12 | |
|
Membre éprouvé
![]() Analyste-développeur Inscription : mai 2002 Messages : 989 ![]() |
Ah oui, c'est vrai j'ai pas vu ça :
Citation:
Au pire, si je ne trouve pas du comment faire pour toute les BDD's je les inscrirais dans aliases.conf ou un fichier .INI et lirais une par une les BDD's en restant avec le sql.
__________________
Seul le Savoir est le Pouvoir |
|
|
|
00
|
|
|
#13 | |
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Citation:
même ce truck et il ne fera pas l'affaire, parce qu'il ce peut que l'utilisateur existe mais il n'est autorisé à aucune base (c-a-d il n'existe nulle part dans les rdb$user_privilèges des bases). |
|
|
|
00
|
|
|
#14 | ||||
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
Terminer les amis; j'ai trouver la solution magnifique :
Il suffit de lancer gsec avec l'option >out.txt qui sauvegarde le résultat de gsec dans le fichier out.txt. Code :
Code :
|
||||
|
|
00
|
|
|
#15 |
|
Membre éprouvé
![]() Analyste-développeur Inscription : mai 2002 Messages : 989 ![]() |
à la bonne heure
__________________
Seul le Savoir est le Pouvoir |
|
|
00
|
|
|
#16 | ||
|
Membre habitué
![]() Inscription : mai 2006 Messages : 200 ![]() |
La réponse au problème initial est alors :
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com