MySQL permite entrada sem senha [duplicado]

2

Configurei meu banco de dados MySQL para exigir senhas em todos os usuários, mesmo o root da própria máquina.

Agora descobri que há usuários vazios no meu banco de dados

Reproduza: mysql -u root -p e, em seguida, use mysql; & select * from user;

Isso me dá duas entradas, uma com "localhost" e usuário < empty > e um com o nome do host da máquina e < empty >.

Agora tentei acessar a conta com mysql -u ' ' (sim está correto, deixe um espaço entre as 'coisas') e faço login sem uma senha. O usuário pode "apenas" ver information_schema e testar, os dois bancos de dados criados por padrão. Ele não tem acesso ao mysql ou qualquer outro banco de dados criado personalizado.

Eu já mudei a senha deste usuário para algo que não vou te dizer

mysql -u root -p
use mysql;
UPDATE mysql.user SET Password=PASSWORD('thisisasecretpassword') WHERE USER='root';
FLUSH PRIVILEGES;

Agora, minhas perguntas:

  • Algum servidor MySQL está vulnerável a ataques com esta entrada?

  • Um invasor pode sair dessa conta ou dos dois bancos de dados padrão?

  • Devo proteger por senha esses Usuários ou posso excluí-los? Eles são necessários para algumas coisas internas do MySQL?

por v3nd3tta 28.11.2012 / 12:16

2 respostas

3

Esses são usuários anônimos e, como tal, não precisam de senhas. Eles são criados por padrão em todas as instalações. Não sei por que isso é feito dessa maneira.

Você pode definir uma senha para eles ou removê-los. De link :

If you want to prevent clients from connecting as anonymous users without a password, you should either assign a password to each anonymous account or else remove the accounts.

Parece ser uma duplicata deste: O MySQL 5.5.16 permite o anonimato conexões

    
por 28.11.2012 / 12:25
1

Use mysql_secure_installation para remover usuários anônimos, testar bancos de dados e também impedir a conexão remota usando root user.

link

    
por 03.03.2015 / 07:23