Même login et mot de passe pour tous avec MySQL?

Zeuf
Invité n'ayant pas de compte PHPfrance

07 oct. 2006, 02:25

Salut à tous,
Je cherche sur le web et je n'ai rien trouvé.

Je développe en ce moment un site en PHP 5 et MySQL 4.1 (en local). Il faut donc un login et un mot de passe pour se connecter à MySQL avec PHP, logique. Tout fonctionne bien mais cela veut-il dire qu'une fois que mon site sera en ligne, tous les utilisateurs auront donc le même mot de passe et le même login pour se connecter à MySQL ?

Merci de m'éclaircir le cerveau les amis !

Bonne nuit et à demain pour la réponse !

Bien à tous

Zeuf

Eléphant du PHP | 183 Messages

07 oct. 2006, 09:21

Slt

Bien sur que non !

Une fois que tu enverra ton site sur ton serveur tu sera amener a changer t'es informations de connections (De ton hebergement) de ta base de données ainsi que l'adresse du serveur sql (localhost en general mais defois autre).
_________
Fabien

Eléphant du PHP | 332 Messages

07 oct. 2006, 11:18

tous les utilisateurs auront donc le même mot de passe et le même login pour se connecter à MySQL ?
En général, oui. Ou plutôt, ton programme PHP va avoir le même code et le même mot de passe pour se connecter à MySQL.
En revanche, à toi de gérer les codes et les mots de passe des utilisateurs pour gérer leurs préférences.

Eléphant du PHP | 63 Messages

07 oct. 2006, 18:54

Salut à tous !

Merci Henri pour ta réponse.

Pour poursuivre ma réflexion et être plus clair :

S'il y a par exemple 100 internautes qui se connectent en même temps à la base/table MySQL, je ne peux pas créer 100 logins et 100 mot de passe?
Cela veut dire que MySQL supporte la connexion de plusieurs utilisateurs qui ont le même login et le même mot de passe (ce qui me semble un peu bizarre, je veux dire au niveau statistiques, sécurité, etc..) OU est-ce que SI justement je drois créer un login et un mot de passe par internaute qui se connecte grâce à un script PHP qui définirait par exemple : le login à la base/table MySQL, mais également son mot de passe et ses GRANTs ?

Et s'il y a 100 000 internautes ?

Merci de m'éclairer une nouvelle fois.

Bien à tous

Eléphant du PHP | 63 Messages

18 oct. 2006, 23:40

Salut à tous !

Personne pour m'aider à y voir plus clair dans les logins à MySQL ?

Please ?

A +

Zeuf

ViPHP
ViPHP | 1961 Messages

19 oct. 2006, 00:13

Bonsoir,

Moi je te conseillerais d'avoir 2 comptes MySQL (ou autre serveur), Un pour les utilisateurs et un pour l'admin de ta base (pas du SGBDR donc pas root)
Le compte utilisateurs ne pourra pas
Modifier la structure de la base (pas de create, drop, etc...)
N'aura accès à certaines tables qu'en lecture, comme les tables de 'référence', la table des utilisateurs/mots de passe, etc...

Le compte Admin qui lui aura tous les droits dans la base en question (pas dans le SGBDR - Exp: pas d'accès à la base mysql, cet accès est réservé a 'root')
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 63 Messages

19 oct. 2006, 00:19

Salut Aj !

Oui merci pour le conseil.

Donc cela veut dire que tous les autres internautes auront le même login et le même mot de passe pour accéder aux tables ?

ViPHP
ViPHP | 1961 Messages

19 oct. 2006, 00:31

Re,
La politique aue je t'ai donnée, n'est pas souhaitable sur un site ou les utilisateurs peuvent créer leurs propres références, je pense que ses cas sont plus rares donc je n'ai pas parlé de ça.

Sinon, au sens MySQL oui, un seul compte pour tous les utilisateurs, c'est surtout pour pouvoir affiner, avec facilité, les droits d'accès. Pour le SGBDR cela ne pose aucun PB. Parcontre le couple nom/mot de passe des deux comptes ne devrais JAMAIS se trouver en dur sur ton code PHP ni sur une base. Les aspirateurs de sites font des merveilles !
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 184 Messages

19 oct. 2006, 00:37

Je crois qu'il y a une certaine méprise au sujet des connections à MySQL, ce ne sont pas les internautes qui vont avoir les droits sur ce serveur mais le script qui envoit des requêtes. L'internaute va lui enclencher les actions pour lancer ces requêtes. Pour résumé, ce ne sont pas les internautes qui vont avoir le login/mot de passe pour la connexion à la base de données mais le script en lui-même, tout se fait sur le serveur.

Par contre Ajoloca il faudra que tu m'expliques le coup des aspirateurs de sites parce que là j'ai du mal à saisir :-k
Image

Eléphant du PHP | 63 Messages

19 oct. 2006, 00:41

Ok, il faut mettre les scripts de connection en dehors du Root Web, mais il y aura forcément des fichiers PHP qui contiennent les logins (identifiant et mot de passe) même en dehors, on est d'accord hein ?

ViPHP
ViPHP | 1961 Messages

19 oct. 2006, 00:47

Re,

Je ne vois pas où est cité le fait que ce sont les utilisateurs (internautes) qui ont le mot de passe de la connexion à la base.

Mais les scripts qui se connectent, ne doivent pas le faire avec le même compte MySQL que l'administrateur.

En cas de "vol" du mot de passe du "compte utilisateur" on limite les dégats dans la base (le compte utilisateur ne pouras jamais supprimer un ligne dans la base commandes par exemple, ne poura pas ajouter une référence de produit, modifier son prix, etc...)

C'est dans ce sens que je l'entends, pas dans le sens d'un compte SQL par utilisateur comme tu le sous entends
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 63 Messages

19 oct. 2006, 00:57

Non, je suis d'accord, bien-sûr qu'ils n'ont pas les logins ROOT ou même avec des GRANTs sur MYSQL ou USER.

Ils ont un logins (identifiant + mot de passe) propre à leur condition d'utilisateur mais c'est le même pour tout le monde.

Donc s'il y a 300 internautes qui se connectent en même temps, ils auront tous les 300 le même identifiant et le même mot de passe (même si ce logins ne permet que de consulter une seule table qui ne contient rien d'important).

C'est ce que je trouve bizarre... Mais bon finalement c'est comme si on habitait à 10 dans un appartement et que chacun ait sa clé : c'est la même clé pour tous (Ensuite qu'à l'intérieur de l'appart il y ait d'autres pièces auxquelles tout le monde n'a pas accès, c'est autre chose).

A +

Zeuf

ViPHP
ViPHP | 1961 Messages

19 oct. 2006, 00:59

Re,
@ zeuf
Le nom et mot de pase se trouvent dans un fichier qui apparient à Apache et que même ceux du groupe auquel appartien apache ne peuvent lire. Comme apache n'as pas de shell de connexion, seul root (du système) peut le modifier et pour acceder on doit passer par le web (pour être apache).

Donc ton script de connexion (qui bien sur est hors web) est en PHP, PHP est considéré par le système comme étant apache, mais il accéde aux fichiers par le système de fichiers, il peut donc accéder hors web.

Il va donc lire ce fichier prendre le nom/mot de passe (dans des variables - il n'est pas en dur dans le code), il se connecte à base, obtient la resource et libère les variables juste après.

C'est ma façon de voir, il en existe surement des meilleurs, mais je pense que c'est assez efficace.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

ViPHP
ViPHP | 1961 Messages

19 oct. 2006, 01:04

Re,
Non c'est pas exactement ça.

C'est comme si tu vas à la banque, le même guichettier va servir plusieurs clients, mais il ne melengera pas les comptes.

Les utilisateurs (internautes) sont les clients de la banque et le guchettier c'est le compte MySQL, le seul qui manipule les données (les comptes bancaires)
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

ViPHP
ViPHP | 1961 Messages

19 oct. 2006, 01:07

Re,

Je ne vois pas où est cité le fait que ce sont les utilisateurs (internautes) qui ont le mot de passe de la connexion à la base.

Mais les scripts qui se connectent, ne doivent pas le faire avec le même compte MySQL que l'administrateur.

En cas de "vol" du mot de passe du "compte utilisateur" on limite les dégats dans la base (le compte utilisateur ne pouras jamais supprimer un ligne dans la base commandes par exemple, ne poura pas ajouter une référence de produit, modifier son prix, etc...)

C'est dans ce sens que je l'entends, pas dans le sens d'un compte SQL par utilisateur comme tu le sous entends
Zeuf, ce message ne s'adressait pas directement à toi mais à graphistnet.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein