IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Delphi 2010 et Firebird 2.5


Sujet :

SQL Firebird

  1. #1
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut Delphi 2010 et Firebird 2.5
    Salut !
    quelle méthode et composant adéquat pour tester si un utilisateur a le droit d'accéder ou pas à ma base de données. A priori, j'ai créé plusieurs utilisateurs avec différents rôle, maintenant dans mon application, à l'exécution, l'utilisateur doit renseigner son nom d'utilisateur et son mot de passe, puis l'application vérifie s'il peut continuer ou pas à exécuter l'application...

    je me suis documenté mais je me suis vite perdu, j'ai essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    procedure TPasswordDlg.OKBtnClick(Sender: TObject);
    begin
      if teste_utilisateur(Edit_nom.Text,Edit_MDP.Text) then
      ShowMessage('trouvé') else ShowMessage('introuvable');
    end;
     
    function TPasswordDlg.teste_utilisateur(Utilisateur, MDP : String) : boolean;
    var i:integer;
    begin
      Result := False;
      with DataModule2.IBSecurityService1 do
      begin
        UserName :=Utilisateur;
        Password :=MDP;
        SQLRole :='rdb$admin';
        DisplayUsers;
        for i := 0 UserInfoCount-1 do
        begin
          if (UserInfo[i].UserName = Utilisateur) then
          // je voudrais tester sur le MDP mais UserInfo ne dispose pas de cette info
          begin
            Result := True;
            BREAK;
          end;
        end;
      end;
    end;
    le hic et que j'ai aucun moyen, avec IBSecurityService, de tester sur le mot de passe !!

    une idée, une piste ...

    merci par avance
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut Sans issue !!!
    je viens de tomber sur un ancien poste qui traite du même sujet et la conclusion est qu'on n'a pas les moyens d'avoir le mot de passe tellement il est bien protégé et crypté ! chose qui me parait bizarre et très loin de la logique car, comme tout le monde le sait, pour accéder à une base de données firebird on doit fournir le couple (nom, mdp) alors pourquoi si l'on veut imiter ça dans une application et loin des outils firebird on n'a pas la main ? dans ces conditions ont doit bricoler, comme p.e, créer une autre table contenant le nom d'utilisateur et le mot de passer et travailler avec !!! faisable mais moche c'est mon avis.

    maintenant j'ai une autre question relative au même sujet, comment obtenir le "role" d'un utilisateur j'ai beau chercher dans la faq mais rien trouvé.

    merci encore de me lire et de me guider.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Citation Envoyé par Just-Soft Voir le message
    ..., pour accéder à une base de données firebird on doit fournir le couple (nom, mdp)
    Pas exactement, un utilisateur doit fournir son couple login mdp/password pour se connecter au serveur Firebird. C'est au niveau de cette connexion que le serveur autorise ou non l'accès.

    Ensuite c'est par la gestion des droits (GRANT/REVOKE) que l'on restreint l'accès aux bases de données. Ces droits sont accordés au User et/ou au rôle.

    Citation Envoyé par Just-Soft Voir le message
    maintenant j'ai une autre question relative au même sujet, comment obtenir le "role" d'un utilisateur j'ai beau chercher dans la faq mais rien trouvé.
    Un User peut posséder un ou plusieurs rôles.
    Pour obtenir cette liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT
     RDB$RELATION_NAME
    FROM
      RDB$USER_PRIVILEGES
    WHERE
      RDB$PRIVILEGE = 'M' AND
      RDB$USER = :MON_USER
    @+ Claudius

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Un User peut posséder un ou plusieurs rôles.
    Pour obtenir cette liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT
     RDB$RELATION_NAME
    FROM
      RDB$USER_PRIVILEGES
    WHERE
      RDB$PRIVILEGE = 'M' AND
      RDB$USER = :MON_USER
    @+ Claudius
    Merci mon ami pour le file que j'ai loupé malgré que j'ai bien parcouru la faq mais quelles sont les autres constantes que peut prendre RDB$PRIVILEGE et quelle est la signification de chaque constante ?

    merci encore.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Hello

    Cette table système contient les droits accordés aux users/rôles sur les tables, vues, procédures stockées ou triggers, ainsi que l'appartenance des users aux différents rôles.

    La colonne RDB$PRIVILEGES peut prendre les valeurs suivantes:
    • S: Select
    • U: Update
    • D: Delete
    • I: Insert
    • R: References
    • X: Execute
    • M: Membre (pour les rôles)


    @+ Claudius

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    bien reçu, merci pour l'info.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/08/2013, 08h15
  2. [Tutoriel] Delphi 2010 : Connexion à Firebird via dbExpress
    Par evarisnea dans le forum Bases de données
    Réponses: 30
    Dernier message: 24/10/2012, 16h11
  3. base de donné sous firebird & delphi 2010
    Par fifi_dz dans le forum Firebird
    Réponses: 4
    Dernier message: 15/01/2011, 22h30
  4. base de donné sous firebird &delphi 2010
    Par fifi_dz dans le forum Bases de données
    Réponses: 9
    Dernier message: 14/01/2011, 00h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo