In realtà, questi tre account utente sono in realtà abbastanza pericolosi. Costituiscono una grandissima minaccia per testare i database.
Sfortunatamente, mysql ha pieno accesso ai database di test. Come puoi trovarli?
Esegui questa query:
SELECT user,host,db from mysql.db;
All'installazione di mysql, vedrai due righe che danno pieno accesso a qualsiasi database chiamato 'test' o i cui primi 5 caratteri sono 'test_'.
Perché questo è un problema ???
Prova a eseguire questo comando:
$ mysql -u'' -Dtest
Avrai collegato il database di test senza una password.
Ora crea una tabella e caricala con una riga:
CREATE TABLE mytable (a int);
INSERT INTO mytable VALUES (1);
OK, un grosso problema. Potresti raddoppiare questa tabella nella dimensione 30 volte ???
INSERT INTO mytable SELECT * FROM mytable;
INSERT INTO mytable SELECT * FROM mytable;
... (30 times)
INSERT INTO mytable SELECT * FROM mytable;
Che cosa ottieni ?? Una tabella con 1.073.741.824 righe. Facilmente, 4 GB +.
Immagina di creare qualsiasi tabella di qualsiasi dimensione. Che ne dici di creare un gruppo di tabelle nel database di test e accedervi liberamente a piacimento?
La cosa migliore che puoi fare in queste circostanze è eseguire questa query:
DELETE FROM mysql.db;
e riavvia mysql. Quindi, quei tre account verranno resi correttamente non operativi.
Provaci !!!
AGGIORNAMENTO 2011-09-12 10:00 EDT
Questo elimina:
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
è proprio ciò di cui hai bisogno per un'installazione iniziale. Tuttavia, se hai già utenti stabiliti, puoi invece eseguire questo:
DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;
Ciò rimuoverà le due autorizzazioni DB specifiche.
Come ho detto nella mia risposta, le tre autorizzazioni sono molto pericolose per i database di test. L'esecuzione di questo DELETE neutralizzerà quegli account per avere diritti completi per testare i database.