web-dev-qa-db-ja.com

どのMySQLユーザーが必要ですか?

私のMySQLサーバーには、追加しなかった奇妙なユーザーが多数います。これらはすべて必要ですか?

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

Root @ localhostを除くすべてのルートを削除すると、データベースから自分自身をロックアウトしてしまう可能性がありますか?そして、空のユーザー名の目的は何ですか?彼らはただ「GRANTUSAGE」を持っているようです??

ホストとしての127.0.0.1とローカルホストの間に違いはありますか?ローカルホストのみがあり、127.0.0.1がない場合、Unixソケットの代わりにTCP/IPを使用するmysqlclientが接続できないことを意味しますか?

13
Myforwik
  1. これらのユーザーは、MySQLのインストール時に追加された デフォルトユーザー のようです。 MySQLのインストール後に mysql_secure_installation を実行することをお勧めします。

  2. 空のユーザー名( '' @ 'SERVERNAME')は、匿名ユーザーを表します。 mysql_secure_installationを実行したり、パスワードを設定したりしなかった場合は、誰でもアクセスできます。匿名ユーザーがGRANT USAGE特権を持っている場合、それは基本的に特権がないことを意味しますが、匿名ログインを完全に削除することをお勧めします。

  3. いいえ、localhostと127.0.0.1の間に大きな違いはありません。ユーザーがログインしようとしているIPアドレスは、ユーザー名の@[IP Address]部分と一致する必要があります。 MySQLサーバーがオンになっている同じマシンからログインする場合、@localhost@127.0.0.1は一致します。 IVlint67が指摘しているように、一部のインストールでは@localhostが機能しないため、@127.0.0.1を使用することをお勧めします。

16
ub3rst4r

私は通常、MySQLに同梱されているmysql_secure_installationスクリプトを使用してインストールします...


[email protected]は@IPアドレスです。 root @localhostは@ホスト名です。サーバー名も同様です。そして最後のルートはローカルホストの@ IPv6アドレスです。


MySQLサイトから:

ホスト127.0.0.1に接続しようとすると、通常はlocalhostアカウントに解決されます。ただし、サーバーが--skip-name-resolveオプションを指定して実行されている場合、これは失敗するため、その場合は127.0.0.1アカウントが役立ちます。

空のユーザー名:

一部のアカウントは匿名ユーザー用です。これらのユーザー名は空です。匿名アカウントにはパスワードがないため、誰でもそれらを使用してMySQLサーバーに接続できます

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


そして最後に:

root @ localhostを除くすべてのルートを削除すると、データベースから自分自身をロックアウトしてしまう可能性がありますか?

はい、でも元に戻すことができます

--skip-grant-tablesを参照してください: https://help.ubuntu.com/community/MysqlPasswordReset

したほうがいい?

私は気にしません、それはあなたのサーバーです。私の場合は、rootアカウントをそのままパスワードで保護し、必要がない限り匿名アカウントを削除します。

13
Daniel Widrick