Quais usuários do MySQL são necessários?

13

Meu servidor MySQL tem um número de usuários estranhos que eu não adicionei. São todos necessários?

'root'@'127.0.0.1'
'root'@'localhost'
'root'@'SERVERNAME'
'root'@'::1'
''@'SERVERNAME'
''@'LOCALHOST'

Se eu remover todos os root's, exceto root @ localhost, posso acabar me trancando fora do banco de dados? E qual é o propósito dos nomes de usuários vazios? Eles parecem ter apenas o 'GRANT USAGE'

Existe uma diferença entre 127.0.0.1 como host e localhost? Se eu tiver apenas localhost e não 127.0.0.1, isso significa que os usuários do mysqlclient que usam TCP / IP em vez de sockets Unix não poderão se conectar?

    
por Myforwik 26.02.2014 / 05:07

2 respostas

16
  1. Esses usuários parecem ser os usuários padrão que eram adicionado quando o MySQL foi instalado. É recomendado que você execute mysql_secure_installation depois de instalar o MySQL.

  2. Os nomes de usuários vazios ('' @ 'SERVERNAME') representam usuários anônimos. Se você não executou mysql_secure_installation ou definiu a senha, qualquer pessoa poderá obter acesso. Se o usuário anônimo tiver GRANT USAGE privileges, significa basicamente que ele não tem privilégios, mas ainda é uma boa idéia remover completamente o login anônimo.

  3. Não, não há grande diferença entre localhost e 127.0.0.1. Qualquer endereço IP do qual o usuário esteja tentando fazer login deve corresponder à parte @[IP Address] do nome de usuário. Se você fizer o login da mesma máquina em que o servidor MySQL está, então @localhost e @127.0.0.1 serão correspondentes. Como IVlint67 apontou, em algumas instalações com @localhost não funcionaria então é melhor ir com @127.0.0.1 .

por 26.02.2014 / 07:00
13

Eu normalmente instalo com o script mysql_secure_installation que o MySQL está enviando agora ...

[email protected] é o endereço IP @. root @ localhost é @ hostname. Idem para o nome do servidor. E a última raiz é @ endereço IPv6 para localhost.

Do site do MySQL:

An attempt to connect to the host 127.0.0.1 normally resolves to the localhost account. However, this fails if the server is run with the --skip-name-resolve option, so the 127.0.0.1 account is useful in that case.

Os nomes de usuários vazios:

Some accounts are for anonymous users. These have an empty user name. The anonymous accounts have no password, so anyone can use them to connect to the MySQL server

link

E finalmente:

Se eu remover todos os root's, exceto root @ localhost, posso acabar me trancando fora do banco de dados?

Sim, mas você pode voltar em

Veja --skip-grant-tables: link

Eu deveria?

Eu não me importo, é o seu servidor. Se fosse meu, eu protegeria as contas raiz, assim como as senhas, e excluiria as contas anônimas, a menos que você precise delas.

    
por 26.02.2014 / 06:57