Quels utilisateurs MySQL sont nécessaires?


13

Mon serveur MySQL a un certain nombre d'utilisateurs étranges que je n'ai pas ajoutés. Est-ce que tout cela est nécessaire?

'root'@'127.0.0.1'
'root'@'localhost'
'root'@'SERVERNAME'
'root'@'::1'
''@'SERVERNAME'
''@'LOCALHOST'

Si je supprime toutes les racines sauf root @ localhost, pourrais-je finir par me verrouiller hors de la base de données? Et quel est le but des noms d'utilisateur vides? Ils semblent juste avoir le «GRANT USAGE» ??

Existe-t-il une différence entre 127.0.0.1 en tant qu'hôte et localhost? Si je n'ai que localhost et pas 127.0.0.1, cela signifie-t-il que mysqlclient qui utilise TCP / IP au lieu des sockets Unix ne pourra pas se connecter?

Réponses:


16
  1. Ces utilisateurs semblent être les utilisateurs par défaut qui ont été ajoutés lors de l'installation de MySQL. Il est recommandé d'exécuter mysql_secure_installation après avoir installé MySQL.

  2. Les noms d'utilisateur vides ('' @ 'SERVERNAME') représentent des utilisateurs anonymes. Si vous n'avez pas exécuté mysql_secure_installationou défini le mot de passe, tout le monde peut y accéder. Si l'utilisateur anonyme a des GRANT USAGEprivilèges, cela signifie essentiellement qu'il n'a aucun privilège, mais c'est toujours une bonne idée de supprimer complètement la connexion anonyme.

  3. Non, il n'y a pas de grande différence entre localhost et 127.0.0.1. Quelle que soit l'adresse IP à partir de laquelle l'utilisateur tente de se connecter, la @[IP Address]partie du nom d'utilisateur doit correspondre . Si vous vous connectez à partir de la même machine, le serveur MySQL est activé, @localhostet @127.0.0.1correspondrait. Comme l'a souligné IVlint67, dans certaines installations, @localhostcela ne fonctionnerait pas, il vaut donc mieux y aller @127.0.0.1.


13

J'installe habituellement avec le script mysql_secure_installation MySQL est livré avec maintenant ...


root@127.0.0.1 est l'adresse @ IP. root @ localhost est @ hostname. Idem pour le nom du serveur. Et la dernière racine est l'adresse @ IPv6 pour localhost.


Depuis le site MySQL:

Une tentative de connexion à l'hôte 127.0.0.1 se résout normalement sur le compte localhost. Cependant, cela échoue si le serveur est exécuté avec l'option --skip-name-resolver, donc le compte 127.0.0.1 est utile dans ce cas.

Les noms d'utilisateur vides:

Certains comptes sont réservés aux utilisateurs anonymes. Ceux-ci ont un nom d'utilisateur vide. Les comptes anonymes n'ont pas de mot de passe, donc tout le monde peut les utiliser pour se connecter au serveur MySQL

http://dev.mysql.com/doc/refman/5.0/en/default-privileges.html


Et enfin:

Si je supprime toutes les racines sauf root @ localhost, pourrais-je finir par me verrouiller hors de la base de données?

Oui, mais vous pouvez rentrer

Voir --skip-grant-tables: https://help.ubuntu.com/community/MysqlPasswordReset

Devrais-je?

Je m'en fiche, c'est votre serveur. Si c'était le mien, je sécuriserais les comptes root tels quels avec les mots de passe et supprimerais les comptes anonymes à moins que vous n'en ayez besoin.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.