Назад | Перейти на главную страницу

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

На моем сервере 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, не сможет подключиться?

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

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

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

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


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


С сайта MySQL:

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

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

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

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


И наконец:

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

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

См. --Skip-grant-tables: https://help.ubuntu.com/community/MysqlPasswordReset

Нужно ли мне?

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