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

Requêtes MySQL Discussion :

authentification sur mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Par défaut authentification sur mysql
    Bonjour,
    Après avoir passé beaucoup de temps à chercher et à tester les multiples scripts pour s'authentifier à une base de données MySQL ... Je demande votre aide !
    Ma Base de données est fonctionnelle. J'ai une table PERSONNEL dans laquelle il y a le login et le mot de passe de chaque utilisateur.
    Lorsque je me connecte en root (paramètres directement insérés dans le code source) : tout fonctionne bien !!! Ma page s'affiche !
    Maintenant, je souhaite avoir une page où chaque utilisateur pourra entrer son login et son mot de passe, et accéder à la page déjà fonctionnelle.
    Tout ce que j'ai trouvé me semble complexe ...
    Existe-t-il un code ou un développement plus allégé que ce qui existe déjà ?

  2. #2
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Par défaut
    Je remarque qu'il n'y a pas de "post" ... J'espère que ce n'est pas compliqué ... Car je suis un peu dans l'impasse ...
    Merci de vos réponses

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 054
    Par défaut
    Bonjour,

    Il faut bien distinguer la différence entre les droits dans MySQL et le contenu de tables.
    Pour permettre la connexion d'un utilisateur à une base de données, et l'autoriser à certaines actions dans des tables précises, il faut passer forcément par la gestion des droits.
    Maintenant, au niveau d'une application, on peut simplifier les choses. Par exemple, tu ne peux avoir qu'un seul compte qui se connecte à la base de données (par exemple, l'utilisateur "root", même si il faut un peu le "blinder", pour des raisons de sécurité). C'est ton utilisateur pour toute opération effectuée par l'application dans la base de données.
    Mais la première requête que cet utilisateur peut effectuer dans l'application, c'est vérifier dans une table PERSONNEL que l'utilisateur et le mot de passe fournis dans la page d'authentification sont corrects. Par une simple requête.

    Ainsi, tu dissocies bien les rôles : un seul utilisateur pour écrire et lire en base, mais un contrôle d'entrée de jeu sur les utilisateurs de l'application par authentification.

    J'espère avoir été clair et que ça pourra t'aider,

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Par défaut
    Bon, je n'ai pas tout compris !! Mes neurones ne percutent pas !
    Bref, je ré-expose mon problème :
    J'ai une TABLE "PERSONNEL" où sont stockées les valeurs "LOGIN" et "MOTDEPASSE"
    Je souhaite à partir d'une page HTML simple entrer le login et le mot de passe de l'utilisateur ... Cliquer sur le bouton "Se Connecter" pour être redirigé vers ma page sécurisée ....

    La procédure la plus simple est en effet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $hote = "localhost";
    $base = "test";
    $user = "toto";
    $passe = "tata";
    mysql_connect($hote, $user, $passe);
    mysql_select_db($base);
    ?>
    Seulement ce code figure en clair dans le fichier !!!

    Personnellement, mes données sont dans une table, donc à partir d'un formulaire HTML de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form action="ouverture.phtml">
       <!--saisie de la machine, de l'utilisateur et son mot de passe-->
       <input type="text" name="hote" value="infres">
       <input type="text" name="utilisateur" value="">
       <input type="password" name="password" value="">
       <input type="submit" value="Connecter">
    </form>
    Je souhaite entrer le login et le mot de passe de l'utilisateur créer dans ma TABLE MYSQL

    Je suis preneur de toutes vos idées

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 054
    Par défaut
    J'ai dû aller un peu vite dans mes explications... Désolé .
    Reprenons donc .
    Dans MySQL, à chaque base de données sont associés un certain nombre de droits, comme la connexion... Et pareil pour les tables (droit de faire des select, update, insert, delete...). Ces droits (ou privilèges) sont donnés à des utilisateurs. Pour plus d'infos, voilà le lien vers la documentation, qui expliquera ça bien mieux que moi .

    Pour que ton utilisateur toto puisse se connecter à ta base test avec le mot de passe tata, comme dans l'exemple de ta procédure, il faut donc créer ces droits dans MySQL.

    Ainsi, à chaque fois que tu dois créer un nouvel utilisateur, il faut penser à créer et gérer ses droits sur la base.
    Si tu as beaucoup de créations, ça peut devenir vite délicat (à moins de le faire via l'application) et il faut penser à retirer les droits quand un utilisateur se désinscrit...

    Bref, tu as une autre solution : un seul utilisateur "générique" a les droits sur la base. Appelons-le "supertoto" ...
    Quand un utilisateur toto s'authentifie, la connexion à la base se fait via "supertoto", dont la première action consiste à vérifier que toto est bien dans la table PERSONNEL, et que le mot de passe est correct. Mais la connexion et la requête sont lancées par l'utilisateur "supertoto".
    Et ainsi de suite pour toutes les requêtes faites dans l'application : c'est supertoto qui les exécute, même si c'est toto qui est connecté.

    Du coup, tu n'as qu'un seul utilisateur à gérer avec des droits dans MySQL : supertoto. Et pour tous les autres utilisateurs, tu les rentre dans la table PERSONNEL, où tu vas systématiquement vérifier si ils existent ou pas à leur connexion.

    J'espère avoir été un peu plus clair...

    Sinon, il va falloir que tu te plonges dans la gestion des droits, notamment en lisant la doc sur le lien indiqué plus haut. Ca marche bien, mais ça nécessite d'être plus attentif à la façon dont on programme l'application. Et plus il y a d'utilisateurs à avoir des droits sur une base, plus il y a de risques de sécurité...

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Par défaut
    Je n'ai pas mis en oeuvre les explications que tu m'as fourni ... Mais, cette fois, OUI, j'ai mieux compris !!!
    Pour le nombre d'utilisateur : pas plus d'une quinzaine ...
    Bon, en avant pour les essais !!!!

  7. #7
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Par défaut
    En fait, c'est bien cette solution là que je veux mettre en place !
    Donc il me faut un utilisateur unique pour faire le démarche de connexion (Implémenter dans MySQL)
    Et ensuite je vais chercher mes profils utilisateurs par une requête sur ma base de donnée !!!


    Citation Envoyé par ced Voir le message
    tu as une autre solution : un seul utilisateur "générique" a les droits sur la base. Appelons-le "supertoto" ...
    Quand un utilisateur toto s'authentifie, la connexion à la base se fait via "supertoto", dont la première action consiste à vérifier que toto est bien dans la table PERSONNEL, et que le mot de passe est correct. Mais la connexion et la requête sont lancées par l'utilisateur "supertoto".
    Et ainsi de suite pour toutes les requêtes faites dans l'application : c'est supertoto qui les exécute, même si c'est toto qui est connecté.
    Du coup, tu n'as qu'un seul utilisateur à gérer avec des droits dans MySQL : supertoto. Et pour tous les autres utilisateurs, tu les rentre dans la table PERSONNEL, où tu vas systématiquement vérifier si ils existent ou pas à leur connexion.
    ced

  8. #8
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 054
    Par défaut
    Exactement.
    C'est la solution la moins contraignante, à ma connaissance

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  9. #9
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 17
    Par défaut
    Bon, j'ai compris l'essentiel !
    Par contre, les codes exemples que je trouve sont très complexes pour moi !
    Y-a-t-il des idées de scripts pour quelques choses de simple ??????

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment enlever l'authentification sur le server mysql
    Par potos3131 dans le forum Administration
    Réponses: 2
    Dernier message: 25/05/2011, 09h29
  2. [VB.NET] Authentification sur serveur mail ?
    Par Webman dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/05/2004, 19h24
  3. [C#] Authentification sur les fichiers Pdf
    Par ensisoft dans le forum ASP.NET
    Réponses: 14
    Dernier message: 04/05/2004, 12h10
  4. driver sur mySql
    Par sampq dans le forum Installation
    Réponses: 8
    Dernier message: 19/08/2003, 09h15
  5. possible sur MySQL 4.0 ?
    Par djforest dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/06/2003, 09h49

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