Какие пользователи MySQL необходимы?

13

У моего сервера MySQL есть несколько странных пользователей, которых я не добавил. Это все необходимо?

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

Если я удалю все руты, кроме root @ localhost, могу ли я в конечном итоге заблокировать себя из базы данных? И какова цель пустых имен пользователей? Кажется, у них просто «ИСПОЛЬЗОВАНИЕ ГРАНТА» ??

Есть ли разница между 127.0.0.1 как host и localhost? Если у меня есть только localhost, а не 127.0.0.1, значит ли это, что mysqlclient, которые используют TCP / IP вместо сокетов Unix, не смогут подключиться?

Myforwik
источник

Ответы:

16
  1. Эти пользователи кажутся пользователями по умолчанию, которые были добавлены при установке MySQL. Рекомендуется запустить mysql_secure_installation после установки MySQL.

  2. Пустые имена пользователей ('' @ 'SERVERNAME') представляют анонимных пользователей. Если вы не запустили mysql_secure_installationили не установили пароль, то любой может получить доступ. Если у анонимного пользователя есть GRANT USAGEпривилегии, то это означает, что у него нет привилегий, но все равно рекомендуется полностью удалить анонимный вход.

  3. Нет, нет большой разницы между localhost и 127.0.0.1. Независимо от того, с @[IP Address]какого IP-адреса пользователь пытается войти, он должен совпадать с частью имени пользователя. Если ваш вход в систему с того же компьютера, на котором работает сервер MySQL, то @localhostи @127.0.0.1будет соответствовать. Как указывалось в IVlint67, в некоторых случаях установка @localhostне работала, поэтому с ней лучше работать @127.0.0.1.

ub3rst4r
источник
13

Обычно я устанавливаю с помощью сценария mysql_secure_installation, с которым сейчас поставляется MySQL ...


root@127.0.0.1 - это @ IP-адрес. root @ localhost - это @ hostname. То же самое для имени сервера. И последний корень - это адрес @ IPv6 для localhost.


С сайта MySQL:

Попытка подключиться к хосту 127.0.0.1 обычно разрешается с учетной записью localhost. Однако это не работает, если сервер запущен с параметром --skip-name-resolver, поэтому в этом случае полезно использовать учетную запись 127.0.0.1.

Пустые имена пользователей:

Некоторые учетные записи предназначены для анонимных пользователей. У них есть пустое имя пользователя. У анонимных учетных записей нет пароля, поэтому любой может использовать их для подключения к серверу MySQL.

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


И наконец:

Если я удалю все руты, кроме root @ localhost, могу ли я в конечном итоге заблокировать себя из базы данных?

Да, но вы можете вернуться в

Смотрите --skip-grant-таблицы: https://help.ubuntu.com/community/MysqlPasswordReset

Нужно ли мне?

Мне все равно, это ваш сервер. Если бы это было мое, я бы защитил корневые учетные записи как есть паролями и удалил анонимные учетные записи, если они вам не нужны.

Дэниел Видрик
источник