Gestion d'utilisateurs [Résolu]

Signaler
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
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...) ?

Un grand merci pour vos réponses !

<hr size="2" width="100%" />Julien.

7 réponses

Messages postés
140
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
5 septembre 2014
1
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.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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.

<hr />Cyril - MSP - MCTS ASP.net & SQL
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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.

<hr />Cyril - MSP - MCTS ASP.net & SQL
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
D'accord, merci !

<hr size="2" width="100%" />Julien.
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
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 ?

<hr size="2" width="100%" />Julien.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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 !

<hr />Cyril - MSP - MCTS ASP.net & SQL
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
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.