Я пытаюсь удалить анонимных пользователей из моей базы данных mysql.users. Тем не менее, я получаю странное поведение. Когда я ввожу команду:
DROP User ''@'WOPR';
Я получаю общее сообщение об ошибке. Итак, я перезагрузил свою машину и попробовал снова. На этот раз я получил ответ
Query OK, 0 rows affected.
Но когда я положил в
SELECT User, Host, Password FROM mysql.user WHERE User='';
Возврат:
+------+------+----------+
| User | Host | Password |
+------+------+----------+
| | WOPR | |
+------+------+----------+
(WOPR - это мое имя хоста)
Я запускаю команду
DROP User ''@'WOPR';
и получить тот же результат.
Я запускаю свежую установку MySQL 5.5 на Arch Linux, версия ядра 2.6.33.
Кто-нибудь знает, что может вызвать такое поведение?
Ответы:
Это должно сделать это для вас.
Попробуйте!
ПРЕДОСТЕРЕЖЕНИЕ
В MySQL определенные пользователи предустановлены в mysql.user. Кроме того, mysql.db поставляется с двумя пользователями, которые имеют анонимный доступ и полные права для тестирования баз данных.
Просто сделай это
и вы увидите, что любой, кто подключается к тесту или к любой базе данных, начинающейся с test_, может делать все в тестовой базе данных. Это плохо, так как человек с полным доступом к любой тестовой базе данных может съесть диск за считанные минуты.
Пример:
ОК, большое дело. Это составляет таблицу с 4 байтами.
Теперь попробуем запустить этот оператор SQL 30 раз:
Эй, мгновенная таблица с 1 073 741 824 строками (4 ГБ + файл) !!! Imaging, обладающий полными правами на тестовую базу данных, где вы можете нанести такой ущерб на диск.
Я советую вам запустить это, чтобы очистить доступ тестового пользователя:
Для дальнейшего разъяснения, смотрите мой пост MySQL: почему в mysql.db есть «тестовые» записи?
Ура !!!
источник
drop user
синтаксис вместоmysql.user
непосредственного изменения базовой таблицы?DROP USER
синтаксис не работает, когда поле пользователя пустое (пустая строка). Вы должны сделать это так, как указано в ответе.mysql.user
таблицы?mysql.db
при установке, что позволит анонимным пользователям получить доступ к тестовой базе данных. Интересно, что мне сказали, что при установке Percona Server эти строки удаляются до завершения его установки ( dba.stackexchange.com/questions/66584/… ). Поскольку вы используете MySQL, либо запустите mysql_secure_installation, либо удалите эти две строки самостоятельно.