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

MySQL 5.5.16 позволяет анонимные подключения

По-видимому, я могу подключиться к MySQL (по крайней мере, с моего локального хоста) без необходимости указывать имя пользователя или пароль. Я даже могу указать что угодно в качестве имени пользователя, если пароль пуст. У меня есть доступ к information_schema и test базы данных. Могу создавать таблицы. Если я сбегу SELECT USER() он возвращает правильное значение randomstring @ localhost, где случайная строка - это то, что я использовал для имени пользователя при подключении.

В mysql.user таблица содержит root @ localhost, root@127.0.0.1, @localhost и pma @ localhost. Я вручную установил зашифрованные пароли ко всем записям (UPDATE user SET password=...) и только root имеет какие-либо привилегии, две другие записи имеют "N" для всех привилегий. Эта запись с пустым именем пользователя выглядит подозрительно, но я не думаю, что она имеет к этому какое-то отношение, и я думаю, что она была там с самого начала.

Что еще хуже, если я добавлю пользователя с паролем, я смогу подключиться только с использованием пустой строки в качестве пароля (точно так же, как если бы я поместил что-нибудь в качестве имени пользователя). Если я попытаюсь подключиться, используя созданное мной имя пользователя и пароль, который я указал при его создании (CREATE USER .. IDENTIFIED BY ..) не работает.

Кто-нибудь знает, что не так и как я могу это исправить?

Примечание: Я использую MySQL 5.5.16 для Windows, предоставленный пакетом XAMPP.

Вам нужно просто удалить анонимного пользователя.

В будущем запуск / usr / bin / mysql_secure_installation (Местоположение в установке RPM) предложит вам удалить этих анонимных пользователей.

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

Удалить анонимных пользователей? [Д / нет] Д ... Успех!

Удалите запись пользователя с пустым именем пользователя. Это причина. Использовать select user(); при входе в систему, чтобы убедиться, что это пользователь, под которым вы вошли.

Видеть Вот:

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