Capture d'écran de PhpMyAdmin : avec un utilisateur possèdant les droits pour une base unique, et ma tête dessinée sous paint

Mysql / Bonnes pratiques / Créer un utilisateur

Introduction

En cas de piratage de site, des hackers peuvent avoir accès à vos ressources internes, et donc à vos bases de données.

Une bonne pratique est de créer un utilisateur par base de données (et de ne surtout jamais laisser le couple “root” / ” ” ) afin qu’en cas de piratage, seulement une seule base soit affectée.

Il est également recommandé d’utiliser des noms d’utilisateur et des mots de passe conséquents afin de limiter les chances de hack par de très nombreuses tentatives (brute force).

Bref, plus simplement, voici le tutoriel pas à pas afin de créer correctement un utilisateur dans votre phpmyadmin.

Génération du mot de passe, attention !

Certains caractères contenus dans les mots de passes générés aléatoirement peuvent rentrer en conflit avec la BDD :

Le mot de passe sera accepté lors de sa création, mais la connexion ne fonctionnera pas.

Il n’y a rien (à ma connaissance) qui en parle dans la documentation, mais après des heures de test (caractère par caractère…) je vous laisse écrit ici en lettres de sang mes recommandations  :

Caractères à remplacer : | ( ) < > ; % & ] \ ° _

Caractères ok : [ ! ? . = @  { } * #

Tutoriel Pas à pas

en images

Capture d'écran de PhpMyAdmin : Base de données choisie > Comptes utilisateurs > Ajouter un compte d'utilisateur
Base de données choisie > Comptes utilisateurs > Ajouter un compte d’utilisateur
Capture d'écran du site "Secure Password Generator", avec 32 caractères pour la génération
Générer un mot de passe fort
Capture d'écran de PhpMyAdmin : en rouge le nom d'utilisateur (à suffixer avec de l'aléatoire), et les privilèges globaux à décocher
Nouvel utilisateur : suffixer avec de l’aléatoire, hôte “localhost” (~adapter), aucun privilège global, sinon accès à l’ensemble des bases !
Capture d'écran de PhpMyAdmin : dans les comptes utilisateurs, onglet "Base de données", sélectionner la base à laquelle rajouter les droits
Pour cet utilisateur : Ajouter les droits sur la table concernée uniquement, on sélectionne la base
Capture d'écran de PhpMyAdmin : Pour la base choisie, et l'utilisateur choisi, cocher "Tout cocher" afin d'ajouter l'intégralité des privilèges, puis bouton exécuter
Cocher “tous les privilèges”, vérifier, puis exécuter
Capture d'écran de PhpMyAdmin : Vérification : l'ensemble des privilèges ont bien étés appliqués uniquement pour la base choisie
Vérification que l’utilisateur dispose de l’ensemble des privilèges pour cette base uniquement
Capture d'écran de code PHP : On ajuste l'utilisateur, le mot de passe, les autres options & on peut maintenant se connecter avec le nouvel utilisateur
On peut utiliser l’utilisateur via PHP, par exemple

Edit 2023

Clairement cela reste une bonne pratique de remplacer l’utilisateur par défaut pour une base, voir de créer différents utilisateurs avec différents droits en fonction des besoins :

  • Un utilisateur qui peut modifier/supprimer
  • Un utilisateur pour le front avec le droit d’afficher uniquement

Mais avec le recul le mieux reste d’avoir une base différente pour chaque site internet haha 😉

Anciens commentaires

Solveig / 01/03/2018

Je vais vraiment faire une statue à ton effigie !

Max / 02/03/2018

Il faudra quelle soit grandiose alors, au moins 25m, et moi chevauchant une licorne ou un truc du genre /o/


Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *