На самом деле эти три учетные записи на самом деле довольно опасны. Они представляют очень большую угрозу для тестирования баз данных.
К сожалению, mysql поставляется с полным доступом к тестовым базам данных. Как вы можете их найти?
Запустите этот запрос:
SELECT user,host,db from mysql.db;
После установки mysql вы увидите две строки, которые дают полный доступ к любой базе данных с именем «test» или чьи первые 5 символов - «test_».
Почему это проблема ???
Попробуйте запустить эту команду:
$ mysql -u'' -Dtest
Вы подключите тестовую базу данных без пароля.
Теперь создайте таблицу и загрузите ее строкой:
CREATE TABLE mytable (a int);
INSERT INTO mytable VALUES (1);
ОК, большое дело. Не могли бы вы удвоить размер этой таблицы в 30 раз ???
INSERT INTO mytable SELECT * FROM mytable;
INSERT INTO mytable SELECT * FROM mytable;
... (30 times)
INSERT INTO mytable SELECT * FROM mytable;
Что вы получаете ?? Таблица с 1 073 741 824 строками. Легко, 4 Гб +.
Представьте себе создание любого стола любого размера. Как насчет создания группы таблиц в тестовой базе данных и свободного доступа к ним по желанию?
Лучшее, что вы можете сделать в этих условиях, это выполнить этот запрос:
DELETE FROM mysql.db;
и перезапустите MySQL. Затем эти три аккаунта будут должным образом отключены.
Попробуйте!
ОБНОВЛЕНИЕ 2011-09-12 10:00 ПО ВОСТОЧНОМУ ВРЕМЕНИ
Это удалить:
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
это именно то, что вам нужно для первоначальной установки. Однако, если у вас уже есть установленные пользователи, вы можете запустить это вместо:
DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;
Это удалит конкретные два разрешения БД.
Как я уже упоминал в своем ответе, эти три разрешения очень опасны для тестовых баз данных. Запуск этого DELETE нейтрализует те учетные записи, которые имеют полные права на тестирование баз данных.