Gerçekte, bu üç kullanıcı hesabı aslında oldukça tehlikelidir. Veritabanlarını test etmek için çok büyük bir tehdit oluşturuyorlar.
Ne yazık ki, mysql test veritabanlarına tam erişim ile geliyor. Onları nasıl bulabilirsin?
Bu sorguyu çalıştır:
SELECT user,host,db from mysql.db;
Mysql yüklendikten sonra, 'test' adında veya ilk 5 karakteri 'test_' olan herhangi bir veritabanına tam erişim sağlayan iki satır göreceksiniz.
Bu neden bir sorundur ???
Bu komutu çalıştırmayı deneyin:
$ mysql -u'' -Dtest
Test veritabanını şifre olmadan bağlamış olacaksınız.
Şimdi bir tablo oluşturun ve bir satırla yükleyin:
CREATE TABLE mytable (a int);
INSERT INTO mytable VALUES (1);
Tamam, önemli. Bu masayı 30 kez iki katına çıkarabilir misiniz ???
INSERT INTO mytable SELECT * FROM mytable;
INSERT INTO mytable SELECT * FROM mytable;
... (30 times)
INSERT INTO mytable SELECT * FROM mytable;
Siz ne alırsınız ?? 1.073.741.824 satır içeren bir tablo. Kolayca, 4GB +.
Herhangi bir boyutta herhangi bir tablo oluşturduğunuzu düşünün. Test veritabanında bir grup tablo oluşturmaya ve istediğiniz zaman onlara serbestçe erişmeye ne dersiniz?
Bu koşullar altında yapabileceğiniz en iyi şey bu sorguyu çalıştırmaktır:
DELETE FROM mysql.db;
ve mysql'yi yeniden başlatın. Daha sonra, bu üç hesap düzgün bir şekilde çalışmaz hale getirilecektir.
Bir şans ver !!!
GÜNCELLEME 2011-09-12 10:00 EDT
Bu silme:
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
ilk kurulum için ihtiyacınız olan şeydir. Ancak, önceden oluşturulmuş kullanıcılarınız varsa, bunun yerine şunu çalıştırabilirsiniz:
DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;
Bu, belirli iki DB izinlerini kaldıracaktır.
Cevabımda belirttiğim gibi, üç izin test veritabanları için çok tehlikelidir. Bu DELETE çalıştırıldığında, bu hesapları veritabanlarını test etme konusunda tam haklara sahip oldukları için etkisiz hale getireceksiniz.