Droits et Utilisateurs MySql

Droits et Utilisateurs MySql - PHP - Programmation

Marsh Posté le 17-02-2004 à 16:53:51    

Oyez!
 
je démarre un projet pro de site en php/mysql, cependant je suis un tout noobie en la matière, et je me pose des question existentielles sur la gestion des droits sur les bases MySQL...
Je m'explique: l'utilisateur administrateur par défaut pour MySql est monsieur 'root'. Il peut donc faire je suppose ce qu'il veut sur l'ensemble des bases MySql qui tournent sur son serveur.
 
1ere question: si je créer un autre admin (avec password d'ailleurs), est-ce possible qu'il y ait "conflit" entre les admins  ? (question un peu conne je l'avoue :sweat:)
 
2eme question (pour me rattraper :p): est-ce que tout utilisateur qui va se connecter sur le site (et aussi à la bdd MySql) va devenir utilisateur de la base (autrement dit: est-ce que la table 'user' visible dans phpMyadmin va accueillir un nouvel enregistrement, meme temporairement ?)
 
c encore un peu toufu dans ma caboche! :whistle: et ca me gènerait terriblement que quelqu'un accède à ma base MySql s'il arrivait a lire le nom et le pass du root dans le fichier de connexion (le root par défaut me parait mal protégé)
 
Répondez vite sinon :pt1cable: (déja que je nage la...)
 
>MICI D'AVANCE<

Reply

Marsh Posté le 17-02-2004 à 16:53:51   

Reply

Marsh Posté le 17-02-2004 à 17:16:38    

le root par défaut EST mal protégé, faut lui ajouter un mot de passe et VITE (à moins que mysql ait changé ça mais j'en doute)
 
1. Non, pourquoi veut tu qu'il y ait des conflits ? Dans un monde idéal, l'utilisateur root n'est jamais utilisé, sauf cas extrèmes (et théoriquement, root est le seul à avoir tout les droits sur toutes les db)
 
2. Non, il va utiliser le compte que le site utilise pour se connecter, donc théoriquement (oui, parce qu'en pratique :D) un compte aux privilèges limités (genre select, insert, update, delete, create, alter...enfin, suivant ce que tu veux lui laisser faire) et à qui tu donnes un accès à une (ou plusieurs db) mais prédéterminée :)

Reply

Marsh Posté le 17-02-2004 à 17:43:08    

LKoLRn a écrit :

Donc concrètement il fo que dans phpMyAdmin je crée un nouvel enregistrement (ie. utilisateur) dans la table 'user' avec des droits limités, et que j'utilise ce "compte" pour logger tous les utilisateurs qui accèdent au site et à la bdd (paramètres à inclure dans la fontion mysql_connect())...?!
 
Encore une chose, tu dis:

Citation :

l'utilisateur root n'est jamais utilisé, sauf cas extrèmes


Ca parait en effet etre une bonne solution, mais dans tous les exemples que je vois de connexion à une base MySql, l'username='root' et le password='', d'où mes interrogations... (je sais, ce ne sont que des exemples :p)
 
Une dernière pour la route! g dis:

Citation :

ca me gènerait terriblement que quelqu'un accède à ma base MySql s'il arrivait a lire le nom et le pass du root dans le fichier de connexion


>> A part changer ces 2 paramètres, y aurait-il d'autres solutions + "massives" contre ma parano?! :sarcastic:

Reply

Marsh Posté le 17-02-2004 à 18:15:21    

Encore un problème... :??: G créé 2 comptes root, le 1er avec pass et le 2nd sans. Lorque j'execute mysql_connect avec le 1er root (parametre password != '') ca ne passe pas, avec le 2eme root (pass='') ca ne passe pas non plus, par contre quand j'essaie avec mon 1er root mais SANS le password, et bien ca marche, je me connecte...!  :pt1cable:
 
!O S'COURS! plzzzzz

Reply

Marsh Posté le 17-02-2004 à 18:36:58    

Vérifie aussi tes host : tu peux définir un utilisateur root avec un pass X sur le localhost, et un user root avec un pass Y sur ta carte éthernet (si tu est connecté via routeur/modem Ethernet) et ainsi de suite...

Reply

Marsh Posté le 17-02-2004 à 18:45:24    

LKoLRn a écrit :


Donc concrètement il fo que dans phpMyAdmin je crée un nouvel enregistrement (ie. utilisateur) dans la table 'user' avec des droits limités, et que j'utilise ce "compte" pour logger tous les utilisateurs qui accèdent au site et à la bdd (paramètres à inclure dans la fontion mysql_connect())...?!  


 
J'utilise pas phpMyAdmin, donc je vais laisser cette partie aux experts de ce script :)
Mais oui, tu ajoutes un utilisateur avec des droits réduits (tant sur les instructions que sur les droits d'accès aux db) et tu te logges avec celui là.
 

LKoLRn a écrit :


Ca parait en effet etre une bonne solution, mais dans tous les exemples que je vois de connexion à une base MySql, l'username='root' et le password='', d'où mes interrogations... (je sais, ce ne sont que des exemples :p)  


 
Pour ça que je disais "dans un monde idéal", parce que comme tu le dis dans la pratique, le compte root est souvent le compte utilisé pour tout, avec tous les droits, tous les accès et une sécurité précaire (déjà vu des scripts qui affichaient le password du compte root lors d'une erreur du script, sécurité zéro :))  
 

LKoLRn a écrit :


A part changer ces 2 paramètres, y aurait-il d'autres solutions + "massives" contre ma parano?


 
Perso j'utilises des comptes sélectifs, des constantes pour les données sensibles, une gestion d'erreur propre (mysql_connect() or die(...) au minimum)
 
Par contre, je crois qu'on s'est mal compris, tu ne peux (enfin, pour le cas général) pas créer 2 comptes de même nom. Donc, tu protèges root avec un mot de passe, et tu crées un deuxième compte que tu appelles comme tu veux (sauf nom déjà pris donc :))  à qui tu donnes les droits que tu souhaites

Reply

Marsh Posté le 17-02-2004 à 19:01:31    

dsl c moi qui me suis mal exprimé, quand je dis:

Citation :

G créé 2 comptes root


> il s'agit en fait de 2 comptes différenciés (avec des username différents) mais ayant tous 2 des droits "root"... ya donc vraiment un truc qui cloche :pt1cable:  
 
Sinon déjà: mici pour les eclaircissements à propos de l'user sur lequel se logger  :jap:


Message édité par lkolrn le 17-02-2004 à 20:28:41
Reply

Marsh Posté le 17-02-2004 à 21:06:30    

Comme l'a dit Titalium plus haut, vérifie aussi les hosts sur lesquels tu as mis un mot de passe (je télécharge phpmyadmin et je repasse plus tard :))

Reply

Marsh Posté le 17-02-2004 à 21:22:51    

Donc, pour ajouter un utilisateur, tu dois passer par l'onglet privilèges > ajouter un utilisateur, pas par une insertion directe dans la table user.
 
Tu rentres son nom, son serveur et l'éventuel mot de passe
Ensuite tu peux définir ses privilèges, droit sur les tables etc...

Reply

Marsh Posté le 17-02-2004 à 23:06:57    

Je sais pas sous EasyPHP vu que je fais maintenant tourner mon serveur HTTP sous Pingouin, mais avec MySQL sous Linux, tu peux très bien avoir plusieurs utilisateur du même nom (root par exemple) avec des droits/hosts differents.
 
C'est pas très judicieux, certes, mais c'est possible...

Reply

Marsh Posté le 17-02-2004 à 23:06:57   

Reply

Marsh Posté le 17-02-2004 à 23:43:35    

MICI c trouvé! :jap:
 
Testé et approuvé!!! :)


Message édité par lkolrn le 17-02-2004 à 23:46:52
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed