Quali utenti MySQL sono necessari?


13

Il mio server MySQL ha un numero di strani utenti che non ho aggiunto. Sono tutti necessari?

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

Se rimuovo tutti i root tranne root @ localhost, potrei finire per bloccarmi fuori dal database? E qual è lo scopo dei nomi utente vuoti? Sembrano avere solo il "GRANT USAGE" ??

C'è una differenza tra 127.0.0.1 come host e localhost? Se ho solo localhost e non 127.0.0.1, ciò significa che i mysqlclient che usano TCP / IP invece dei socket Unix non saranno in grado di connettersi?

Risposte:


16
  1. Questi utenti sembrano essere gli utenti predefiniti aggiunti durante l'installazione di MySQL. Si consiglia di eseguire mysql_secure_installation dopo l'installazione di MySQL.

  2. I nomi utente vuoti ('' @ 'SERVERNAME') rappresentano utenti anonimi. Se non hai eseguito mysql_secure_installationo impostato la password, chiunque può ottenere l'accesso. Se l'utente anonimo ha GRANT USAGEprivilegi, significa sostanzialmente che non ha privilegi, ma è comunque una buona idea rimuovere completamente l'accesso anonimo.

  3. No, non c'è grande differenza tra localhost e 127.0.0.1. Qualunque sia l'indirizzo IP da cui l'utente sta tentando di accedere, deve corrispondere alla @[IP Address]parte del nome utente. Se il tuo login dalla stessa macchina è il server MySQL è acceso, allora @localhoste @127.0.0.1corrisponderebbe. Come ha sottolineato IVlint67, in alcune installazioni @localhostnon avrebbe funzionato, quindi è meglio andare avanti @127.0.0.1.


13

Di solito installo con lo script mysql_secure_installation con cui MySQL spedisce ora ...


root@127.0.0.1 è l'indirizzo @ IP. root @ localhost è @ hostname. Idem per il nome del server. E l'ultimo root è l'indirizzo @ IPv6 per localhost.


Dal sito MySQL:

Un tentativo di connettersi all'host 127.0.0.1 normalmente si risolve nell'account localhost. Tuttavia, ciò non riesce se il server viene eseguito con l'opzione --skip-name-resolve, quindi l'account 127.0.0.1 è utile in quel caso.

I nomi utente vuoti:

Alcuni account sono per utenti anonimi. Questi hanno un nome utente vuoto. Gli account anonimi non hanno password, quindi chiunque può usarli per connettersi al server MySQL

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


E infine:

Se rimuovo tutti i root tranne root @ localhost, potrei finire per bloccarmi fuori dal database?

Sì, ma puoi rientrare

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

Dovrei?

Non mi interessa, è il tuo server. Se fosse mio, proteggerei gli account di root come con le password ed eliminerei gli account anonimi a meno che tu non ne abbia bisogno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.