Na realidade, essas três contas de usuário são realmente bastante perigosas. Eles representam uma ameaça muito grande para testar bancos de dados.
Infelizmente, o mysql vem com acesso total aos bancos de dados de teste. Como você pode encontrá-los?
Execute esta consulta:
SELECT user,host,db from mysql.db;
Após a instalação do mysql, você verá duas linhas que dão acesso total a qualquer banco de dados chamado 'test' ou cujos 5 primeiros caracteres sejam 'test_'.
Porque isto é um problema ???
Tente executar este comando:
$ mysql -u'' -Dtest
Você conectou o banco de dados de teste sem uma senha.
Agora, crie uma tabela e carregue-a com uma linha:
CREATE TABLE mytable (a int);
INSERT INTO mytable VALUES (1);
OK, grande coisa. Você poderia dobrar essa mesa em tamanho 30 vezes ???
INSERT INTO mytable SELECT * FROM mytable;
INSERT INTO mytable SELECT * FROM mytable;
... (30 times)
INSERT INTO mytable SELECT * FROM mytable;
O que você ganha ?? Uma tabela com 1.073.741.824 linhas. Facilmente, 4 GB +.
Imagine criar qualquer tabela de qualquer tamanho. Que tal criar um monte de tabelas no banco de dados de teste e acessá-las livremente à vontade?
A melhor coisa que você pode fazer nessas circunstâncias é executar esta consulta:
DELETE FROM mysql.db;
e reinicie o mysql. Em seguida, essas três contas serão devidamente inoperantes.
De uma chance !!!
UPDATE 2011-09-12 10:00 EDT
Esta exclusão:
DELETE FROM mysql.db;
FLUSH PRIVILEGES;
é exatamente o que você precisa para uma instalação inicial. No entanto, se você já tiver usuários estabelecidos, poderá executar isso:
DELETE FROM mysql.db WHERE db IN ('test','test_%');
FLUSH PRIVILEGES;
Isso removerá as duas permissões específicas do banco de dados.
Como mencionei na minha resposta, as três permissões são muito perigosas para bancos de dados de teste. A execução deste DELETE neutralizará essas contas por terem direitos totais para testar bancos de dados.