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

13

Meu servidor MySQL possui vários usuários estranhos que eu não adicionei. Tudo isso é necessário?

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

Se eu remover todas as raízes, exceto raiz @ localhost, posso acabar me bloqueando no banco de dados? E qual é o objetivo dos nomes de usuário vazios? Eles parecem ter apenas o 'GRANT USAGE' ??

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

Myforwik
fonte

Respostas:

16
  1. Esses usuários parecem ser os usuários padrão adicionados quando o MySQL foi instalado. É recomendável que você execute mysql_secure_installation após instalar o MySQL.

  2. Os nomes de usuário vazios ('' @ 'SERVERNAME') representam usuários anônimos. Se você não executou mysql_secure_installationou definiu a senha, qualquer pessoa pode obter acesso. Se o usuário anônimo tiver GRANT USAGEprivilégios, significa basicamente que 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 o host local e o 127.0.0.1. Qualquer que seja o endereço IP do qual o usuário esteja tentando fazer login, deve corresponder à @[IP Address]parte do nome de usuário. Se você estiver efetuando login a partir da mesma máquina, o servidor MySQL está ativado, @localhoste @127.0.0.1será o mesmo. Como IVlint67 apontou, em algumas instalações @localhost, o funcionamento não funcionaria, portanto é melhor seguir com ele @127.0.0.1.

ub3rst4r
fonte
13

Eu costumo instalar com o script mysql_secure_installation que o MySQL vem com agora ...


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


No site MySQL:

Uma tentativa de conectar-se ao host 127.0.0.1 normalmente é resolvida na conta localhost. No entanto, isso falhará se o servidor for executado com a opção --skip-name-resolve, portanto, a conta 127.0.0.1 é útil nesse caso.

Os nomes de usuário vazios:

Algumas contas são para usuários anônimos. Estes têm um nome de usuário vazio. As contas anônimas não têm senha, então qualquer pessoa pode usá-las para se conectar ao servidor MySQL

http://dev.mysql.com/doc/refman/5.0/en/default-privileges.html


E finalmente:

Se eu remover todas as raízes, exceto raiz @ localhost, posso acabar me bloqueando no banco de dados?

Sim, mas você pode voltar

Consulte --skip-grant-tables: https://help.ubuntu.com/community/MysqlPasswordReset

Eu devo?

Eu não ligo, é o seu servidor. Se fosse minha, eu protegeria as contas raiz como estão com as senhas e excluiria as contas anônimas, a menos que você precise delas.

Daniel Widrick
fonte