Usando phpmyadmin em uma configuração wamp de teste local, e assim como praticamente os estados do título, existem 3 usuários marcados como usuário = QUALQUER, senha = NÃO, como:
USER | HOST | Password | Global Priv | Grant
-----+---------+----------+-------------+------
Any | % | No | USAGE | No
Any | Local | No | USAGE | No
Any | Domain | No | USAGE | No
-----+---------+----------+-------------+------
Nenhum dos 3 usuários tem privilégios específicos para nenhuma tabela, então parece que eles não podem fazer muito. Isso é algum tipo de medida de segurança genérica, para declarar explicitamente que 'Qualquer' usuário que não se enquadre em nenhum outro grupo de usuários não tem privilégios?
Na realidade, essas três contas de usuário são bastante perigosas. Eles representam uma grande ameaça para bancos de dados de teste.
Infelizmente, o mysql vem com acesso total aos bancos de dados de teste. Como você pode encontrá-los?
Execute esta consulta:
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 primeiros 5 caracteres são 'test_'.
Porque isto é um problema ???
Tente executar este comando:
Você terá conectado o banco de dados de teste sem uma senha.
Agora, crie uma tabela e carregue-a com uma linha:
OK, grande coisa. Você poderia dobrar esta mesa de tamanho 30 vezes ???
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:
e reinicie o mysql. Então, essas três contas serão devidamente tornadas inoperantes.
De uma chance !!!
ATUALIZAÇÃO 2011-09-12 10:00 EDT
Esta exclusão:
é exatamente o que você precisa para uma instalação inicial. No entanto, se você já tiver usuários estabelecidos, poderá executar isso:
Isso removerá as duas permissões de banco de dados específicas.
Como mencionei em 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.
O perigo de manter essas contas anônimas já foi muito bem explicado.
O manual fornece uma lista de verificação abrangente das etapas a serem seguidas para " Proteger as contas MySQL iniciais ".
Em particular, a seção "Atribuição de senhas de contas anônimas" aconselha a remoção dessas contas.
Além disso, o capítulo "Protegendo bancos de dados de teste" aconselha:
Em particular, em sistemas não Windows, é recomendável executar o
mysql_secure_installation
script. Acredito que o instalador do Windows oferece vários perfis de instalação. Alguns deles desativarão automaticamente as configurações inseguras. Caso contrário, a lista de verificação precisará ser executada manualmente.Deve-se tomar cuidado com instaladores de terceiros, como o WAMP. As permissões padrão indicadas no manual oficial do MySQL podem nem sempre se aplicar a essas instalações personalizadas (como em "fora do escopo do manual). Claro, para um servidor de produção, instalações WAMP e similares devem ser evitadas a todo custo .