Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 2009
-
3 mars 2007 à 17:11
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 2010
-
3 mars 2007 à 23:52
Bonjour à tous,
Je fais pour la première fois un site utilisant un système de login de membres et je me pose trois questions basiques mais dont je n'ai pas trouvé la réponse dans les tutos.
En sachant que le nombre d'utilisateurs doit pouvoir tendre vers l'infini (enfin on se comprend ) et que chacun d'eux possède une centaine d'objets d'informations (des réunions avec leurs dates, il s'agit d'un projet d'agenda).
1) Est-ce mieux que, pour chaque utilisateur, je crée un utilisateur de ma base de données avec le mot de passe qu'il aura fournit et que, lorsqu'il demande des données je le connecte à la base avec ce login (problème d'un nombre potentiellement énorme d'utilisateurs de la base de donnée, mais ce n'est peut-être pas du tout un problème en fait ?).
Ou bien, j'utilise le même user pour chaque accès à la base de données, et je vérifie dans mon code que les utilisateurs loggés n'accèdent bien qu'à leurs informations (avec le risque que quelqu'un contourne cela...)
2) Les informations des utilisateurs étant toutes du même format, est-ce mieux d'avoir une table par utilisateur, ou bien une grande table avec tout et une colonne indiquant à quel utilisateur appartient la donnée ?
3) Au niveau mot de passe, qu'est-ce qui est le mieux pour la comparaison ? Comparer le SHA-256 ? Si oui, je stocke le mot de passe, ou uniquement son SHA-256 (et alors pas moyen de le récupérer, uniquement en générer un nouveau en cas de perte...) ?
jeffwow
Messages postés140Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention 5 septembre 20141 3 mars 2007 à 17:54
Bon je m'avance en te disant ce que moi je ferais.
1) Je n'utiliserais qu'un seul user pour la base de données et je vérifierais par la suite leurs infos individuellement (normalement en ne rajoutant qu'un simple where non? select * from infos where user=x).
2) Personnellement, je suis amateurs des BD ayant le moins de tables possibles, mais bien pensées. Donc d'après moi, créer une table par utilisateur ne fera que compliquer ton code. J'opterais pour une table utilisateurs.
3) Mot de passe encrypté sans la moindre hésitation. Dans le cas d'une perte de mot de passe, il suffit d'en générer un nouveau et de l'envoyer par email à l'utilisateur, ou encore d'intégrer un système de question/réponse.
Mon opinion n'est pas plus valable que n'importe quelle autre, mais moi c'est de cette façon que je procéderais.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 3 mars 2007 à 18:17
Bonjour, j'aurais répondu exactement la meme chose que jeffwow. Créer une base par user est complétement invraissemblable, pour ce qui est de un user un user SQL, la question peut se poser mais dans la pratique il est préférable d'avoir un un seul user. Au pire on peut faire un user SQL un role particulier de ton site web mais faut vraiment en avoir besoin.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 3 mars 2007 à 23:52
je connais pas assez mysql pour te dire, va plutot voir sur www.sqlfr.com pour plus d'info, mais pour moi c'est une perte de temps car ca ne sert à rien dans la pratique sauf si t'as vraiment un contexte exceptionnel.
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 3 mars 2007 à 22:44
Dans le cas un User = un User MySql et une seule table, est-il alors possible de gérer les droits de lecture spécifiquement pour chaque entrée de la table ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 3 mars 2007 à 23:16
Une table par user je te dis clairement non ! je ne vois aucune interet sinon de complexifier ta base. Par contre tu peux peut etre m'être les droits au niveau des lignes ... Mais normalement si ton appli est bien parametré tu n'as aucun risque et tu auras moins de bug avec un seul user sql !
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 3 mars 2007 à 23:29
Ok alors encore deux questions
1) Comment mettre les droits au niveau des lignes ? (J'ai essayé Grant.... Where User=username, apparemment on peut pas mettre de Where avec Grant...)
2) Pour un seul user mysql, je stocke son mot de passe dans un fichier sur le serveur et j'utilise les droits d'xp pour qu'ils ne soient accessible que depuis le processus d'ASP, c'est bon ça ?
Merci de ton aide !
<hr size="2" width="100%" />Julien.