Насправді ці три облікові записи користувачів насправді досить небезпечні. Вони становлять дуже велику загрозу для тестових баз даних.
На жаль, 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 EDT
Це видалення:
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
це саме те, що потрібно для початкової установки. Однак якщо у вас вже є користувачі, ви можете запустити це:
DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;
Це видалить два конкретні дозволи DB.
Як я вже згадував у своїй відповіді, три дозволу дуже небезпечні для тестових баз даних. Запуск цього DELETE нейтралізує ці акаунти, що мають повні права на тестування баз даних.