Pada kenyataannya, ketiga akun pengguna itu sebenarnya cukup berbahaya. Mereka menimbulkan ancaman yang sangat besar untuk menguji basis data.
Sayangnya, mysql hadir dengan akses penuh untuk menguji basis data. Bagaimana Anda bisa menemukannya?
Jalankan kueri ini:
SELECT user,host,db from mysql.db;
Setelah pemasangan mysql, Anda akan melihat dua baris yang memberikan akses penuh ke database apa pun yang bernama 'test' atau yang 5 karakter pertamanya adalah 'test_'.
Mengapa ini menjadi masalah ???
Coba jalankan perintah ini:
$ mysql -u'' -Dtest
Anda akan menghubungkan database pengujian tanpa kata sandi.
Sekarang, buat tabel dan muat dengan baris:
CREATE TABLE mytable (a int);
INSERT INTO mytable VALUES (1);
OK, masalah besar. Bisakah Anda menggandakan tabel ini dalam ukuran 30 kali ???
INSERT INTO mytable SELECT * FROM mytable;
INSERT INTO mytable SELECT * FROM mytable;
... (30 times)
INSERT INTO mytable SELECT * FROM mytable;
Mendapatkan apa ?? Tabel dengan 1.073.741.824 baris. Mudah, 4GB +.
Bayangkan membuat tabel ukuran apa saja. Bagaimana kalau membuat banyak tabel dalam database pengujian dan secara bebas mengaksesnya sesuka hati?
Hal terbaik yang dapat Anda lakukan dalam situasi ini adalah menjalankan kueri ini:
DELETE FROM mysql.db;
dan mulai kembali mysql. Kemudian, ketiga akun tersebut akan dianggap tidak beroperasi dengan benar.
Cobalah !!!
UPDATE 2011-09-12 10:00 EDT
Ini menghapus:
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
hanya apa yang Anda butuhkan untuk instalasi awal. Namun, jika Anda sudah memiliki pengguna, Anda dapat menjalankan ini sebagai gantinya:
DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;
Ini akan menghapus dua izin DB khusus.
Seperti yang saya sebutkan dalam jawaban saya, tiga izin sangat berbahaya untuk database pengujian. Menjalankan DELETE ini akan menetralisir akun tersebut karena memiliki hak penuh untuk menguji basis data.