Którzy użytkownicy MySQL są potrzebni?

13

Mój serwer MySQL ma wielu dziwnych użytkowników, których nie dodałem. Czy to wszystko jest konieczne?

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

Czy jeśli usunę wszystkie katalogi główne oprócz root @ localhost, czy mogę ostatecznie zablokować się z bazy danych? A jaki jest cel pustych nazw użytkowników? Wydaje się, że mają po prostu „UŻYTKOWANIE DOTACJI”

Czy istnieje różnica między 127.0.0.1 jako hostem a hostem lokalnym? Jeśli mam tylko hosta lokalnego, a nie 127.0.0.1, czy to oznacza, że ​​mysqlclient, którzy używają TCP / IP zamiast gniazd Unix nie będą mogli się połączyć?

Myforwik
źródło

Odpowiedzi:

16
  1. Ci użytkownicy wydają się być domyślnymi użytkownikami dodanymi podczas instalacji MySQL. Zaleca się uruchomienie mysql_secure_installation po zainstalowaniu MySQL.

  2. Puste nazwy użytkowników ('' @ 'SERVERNAME') reprezentują anonimowych użytkowników. Jeśli nie uruchomiłeś mysql_secure_installationani nie ustawiłeś hasła, każdy może uzyskać dostęp. Jeśli anonimowy użytkownik ma GRANT USAGEuprawnienia, oznacza to w zasadzie, że nie ma żadnych uprawnień, ale nadal dobrym pomysłem jest całkowite usunięcie anonimowego logowania.

  3. Nie, nie ma dużej różnicy między localhost a 127.0.0.1. Niezależnie od adresu IP, z którego użytkownik próbuje się zalogować, musi pasować do @[IP Address]części nazwy użytkownika. Jeśli logujesz się z tego samego komputera, na którym jest włączony serwer MySQL, to @localhosti @127.0.0.1będzie pasować. Jak wskazał IVlint67, w niektórych instalacjach @localhostnie działałoby, więc lepiej jest iść @127.0.0.1.

ub3rst4r
źródło
13

Zwykle instaluję za pomocą skryptu mysql_secure_installation MySQL jest teraz dostarczany ...


[email protected] to adres @ IP. root @ localhost to @ nazwa hosta. To samo dotyczy nazwy serwera. Ostatnim katalogiem głównym jest adres @ IPv6 dla hosta lokalnego.


Ze strony MySQL:

Próba połączenia z hostem 127.0.0.1 zwykle kończy się na koncie localhost. Nie powiedzie się to jednak, jeśli serwer działa z opcją --skip-name-resolver, więc konto 127.0.0.1 jest przydatne w takim przypadku.

Puste nazwy użytkowników:

Niektóre konta są dla anonimowych użytkowników. Mają pustą nazwę użytkownika. Anonimowe konta nie mają hasła, więc każdy może ich używać do łączenia się z serwerem MySQL

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


I w końcu:

Czy jeśli usunę wszystkie katalogi główne oprócz root @ localhost, czy mogę ostatecznie zablokować się z bazy danych?

Tak, ale możesz wrócić

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

Czy powinienem?

Nie obchodzi mnie to, to twój serwer. Gdyby to było moje, zabezpieczyłbym konta root, podobnie jak hasła, i usuną anonimowe konta, chyba że będą potrzebne.

Daniel Widrick
źródło