Page 1 sur 1

Un seul user pour mySQL

Posté : 07 avr. 2011, 11:55
par jacfev
Bonjour,

Quels sont les risques de n'avoir qu'un seul utilisateur pour une BdD :?:

C'est pour le site web (pas en local)

Réponse synthétique si possible.

Et y aurait-il un autre moyen de gérer les droits des utilisateurs autrement que par la BDD mysql (tables user et autres) de mySQL :?: ?

Cordialement
jf.

Re: Un seul user pour mySQL

Posté : 07 avr. 2011, 15:57
par Mazarini
Bonjour,

Si une seul personne accède à la base de données directement, il n'y a pas de problème à n'avoir qu'un seul user également utilisé par PHP pour le site.
Si plusieurs appli sont utilisées avec des bases différentes, il peut être bien d'avoir une base par appli et un user par base.

Pour se qui est de la gestion des droits, le plus simple/plus souple reste la définition des droits dans des tables pour des users ou des groupes de users. Si l'application s'y prete, il est possible d'utiliser des .htaccess et des fichiers de mots de passe selon les répertoires.

Re: Un seul user pour mySQL

Posté : 08 avr. 2011, 15:36
par jacfev
Merci pour ta réponse mazarini

>Si l'application s'y prete, il est possible d'utiliser des .htaccess

Mais .htaccess ne concerne-t-il pas que les répertoires et les fichiers :?:

.htaccess permet de gérer les privilèges des Bases de Données mySQL :?: :?:

Ce que je dois pouvoir faire c'est donner des privilèges sélectifs, ceci notamment :
GRANT all privileges ON biblio.* TO bibliothecaire IDENTIFIED BY 'motdepasse2';
GRANT usage ON *.* TO cyril@"%mondomaine.com" IDENTIFIED BY 'go123'; 
GRANT select ON facsys.clients TO elisa@localhost;
Je ne vois pas vraiment comment me passer d'une BDD mySQL utilisant la BDD mysql qui gère les privilèges.

Re: Un seul user pour mySQL

Posté : 10 avr. 2011, 04:41
par devlop78
Si le critère de sécurité est important, alors avoir plusieurs utilisateurs est important.

Un schéma de base est souvent :

- 1 utilisateur qui peut modifier les schémas
- 1 utilisateur qui peut modifier les données

Mais on peut aller plus loin ...

On peut imaginer

- Un utilisateur "root" (pas celui de mysql :p) qui peut tout faire (toi). Lui, jamais PHP ne l'utilise. Jamais ...
- Un utilisateur éventuellement qui gère la structure (mais en général, c'est toi).
- Un utilisateur pour une application spécifique avec les droits strictes. Par exemple : il a besoin juste de lire des tables ou des vues ? Alors, tu ne le lui donnes que cette autorisation.

Bon, cela dit ... c'est relatif. Si on arrive à supprimer toutes les données, c'est assez peu important si on supprime les tables avec ... Mais au moins que l'on ne puisse pas faire plus, comme augmenter le cache de RAM, ou des choses qui mettrait le serveur en péril, et permettrait des attaques des autres services ... Mais là .. il faudrait avoir le droit de "root" mysql pour ça, je pense.

Donc, en gros : le moins de privilèges possible. Si ton application désactives des choses plutot que de les supprimer : interdis lui de supprimer.