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


13

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

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

root @ localhostを除くすべてのルートを削除すると、データベースから自分自身をロックアウトできますか?そして、空のユーザー名の目的は何ですか?彼らはただ「GRANT USAGE」を持っているように見える??

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

回答:


16
  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です。


13

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


root@127.0.0.1は@ IPアドレスです。root @ localhostは@ホスト名です。サーバー名についても同じです。最後のルートは、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

したほうがいい?

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.