6 votes

Le journal MySQL indique 3 utilisateurs root, dont 2 sans mot de passe ? Pourquoi ?

Notre journal MySQL a affiché un avertissement au redémarrage à propos de 2 utilisateurs root n'ayant pas de mots de passe.

Je suis allé dans MySQL et j'ai vérifié tous les utilisateurs :

mysql> select * from mysql.user;

et voir :

Host       |    User   |   Password
localhost       root      *76685yt868itetc
web12-b0        root
127.0.0.1       root  

Tout d'abord, pourquoi y a-t-il 3 utilisateurs root (et avons-nous besoin de 127.0.0.1 puisque nous avons localhost) ?

Deuxièmement, pourquoi deux d'entre eux n'auraient pas de mot de passe ?

Troisièmement, les hôtes web12-b0 et 127.0.0.1 ont-ils un accès complet à la racine sans avoir à utiliser un mot de passe (comme cela semble être le cas) ?

Quatrièmement, y a-t-il une raison valable pour cela ou dois-je suggérer à l'administrateur de mettre des mots de passe sur ces deux hôtes ?

Merci pour vos réponses.

12voto

Aaron R. Points 467

Je sais que c'est un vieux sujet, mais je voulais ajouter quelques points supplémentaires :

Trois utilisateurs root sont générés par défaut lorsque vous créez une base de données pour la première fois. Ils sont tous créés sans mot de passe. À ce moment-là, l'installation vous recommande également de définir un mot de passe en exécutant mysqladmin -u root password qui changera le mot de passe de 'root'@'%'.

Les deux qui n'ont toujours pas de mot de passe sont locaux à l'hôte spécifié dans la colonne Host ; dans ces deux cas, il s'agit du serveur de base de données actuel. Ils ont tous deux un accès complet à la base de données par défaut. On pourrait supposer à juste titre que, dans de nombreux cas, si vous avez pu vous connecter à la machine (ce qui serait nécessaire pour utiliser l'un ou l'autre de ces comptes root) en premier lieu, alors vous avez probablement accès aux fichiers réels sur le disque. Par conséquent, le fait d'avoir des mots de passe sur ces derniers pourrait ne pas apporter de réelle sécurité.

Cela dit, je préfère supprimer ces comptes par défaut et m'en tenir à des comptes protégés par un mot de passe.

DELETE FROM mysql.user WHERE Password=''; FLUSH PRIVILEGES

3voto

LL Phillips Points 21

Tout d'abord, pourquoi y a-t-il 3 utilisateurs root

Parce que quelqu'un a ajouté trois utilisateurs root.

(et avons-nous besoin de 127.0.0.1 puisque nous avons localhost) ?

Dans MySQL, localhost et 127.0.0.1 sont fondamentalement différents. L'hôte 'localhost' dans MySQL signifie "se connecter localement en utilisant un socket unix". L'hôte "127.0.0.1" signifie "se connecter via l'interface loopback en utilisant TCP".

Deuxièmement, pourquoi deux d'entre eux n'auraient pas de mot de passe ?

Parce que personne n'a mis de mot de passe pour eux.

Troisièmement, les hôtes web12-b0 et 127.0.0.1 ont-ils un accès complet à la racine sans avoir à utiliser un mot de passe (comme cela semble être le cas) ?

Vous avez fourni des informations insuffisantes pour répondre à cette question. La présence d'un utilisateur dans MySQL n'implique aucune permission en plus de celle de l'utilisateur. USAGE (la capacité de se connecter). Pour afficher les permissions d'un utilisateur, vous devez utiliser :

SHOW GRANTS FOR user@host;

Quatrièmement, y a-t-il une raison valable pour cela ou dois-je suggérer à l'administrateur de mettre des mots de passe sur ces deux hôtes ?

Je vous déconseille d'avoir des comptes sans mot de passe sur votre serveur MySQL.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X