MySQL/MariaDBSécurité MySQL
Sécurisation d'un serveur de bases de données
Changer le mot de passe de root
Changer le mot de passe de root
mysql> SET PASSWORD FOR root@localhost=PASSWORD('secret');Note: est utilisé ci-dessus la fonction PASSWORD() qui permet de crypter le mot de passe
Ensuite, il faut réactualiser les privilèges:
mysql> FLUSH PRIVILEGES;mysql> SELECT host, user, password FROM user;mysql> SHOW GRANTS FOR root@localhost;Attention: si vous changez le mot de passe de root sur le serveur, il vous faut aussi le changer pour phpmyAdmin. Pour cela, voir le fichier "config.inc.php" au niveau de l'option "password":
$cfg['Servers'][$i]['password'] = '';De plus, il faut que phpmyAdmin demande le mot de passe à l'ouverture.
Pour cela, toujours dans le fichier "config.inc.php", voir l'option :$cfg['Servers'][$i]['auth_type'] = 'config';Cette option est à "config" par défaut. La mettre à "http" pour avoir une demande de mot de passe à l'ouverture.
Supprimer le compte anonyme du serveur
Les versions de MySQL antérieures à la 5 créés un compte anonyme par défaut ce qui permettait un accès à toutes les bases dont le nom commençaient par le mot test.
Suppression du compte anonyme:mysql> DELETE FROM user WHERE user='';mysql> DELETE FROM db WHERE db LIKE 'test%';Note: le % est un jocker signifie "toutes suite de caractères". Pour un caractère, on utilise le joker tiret inférieur (_).
Ensuite, il faut réactualiser les privilèges:
mysql> FLUSH PRIVILEGES;Voir aussi Comment sécuriser MySQL et Découvrez les dangers de MySQL et MariaDB


