実際には、これら3つのユーザーアカウントは実際には非常に危険です。それらはデータベースのテストに非常に大きな脅威をもたらします。
残念ながら、mysqlにはテストデータベースへのフルアクセスが付属しています。どうすればそれらを見つけることができますか?
このクエリを実行します。
SELECT user,host,db from mysql.db;
mysqlをインストールすると、「test」という名前のデータベース、または最初の5文字が「test_」のデータベースへのフルアクセスを提供する2つの行が表示されます。
なぜこれが問題なのですか?
次のコマンドを実行してみてください:
$ 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行のテーブル。簡単に、4GB +。
任意のサイズの任意のテーブルを作成することを想像してください。テストデータベースに一連のテーブルを作成し、自由に自由にアクセスしてみませんか?
このような状況で実行できる最善のことは、次のクエリを実行することです。
DELETE FROM mysql.db;
mysqlを再起動します。その後、これらの3つのアカウントは適切に機能しなくなります。
試してみる !!!
UPDATE 2011-09-12 10:00 EDT
この削除:
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
初期インストールに必要なものです。ただし、ユーザーがすでに確立されている場合は、代わりにこれを実行できます。
DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;
これにより、特定の2つのDB権限が削除されます。
回答で述べたように、3つの権限はテストデータベースにとって非常に危険です。このDELETEを実行すると、データベースをテストするための完全な権限を持つアカウントが無効になります。