MariaDB権限を付与しますか? [閉鎖]

MariaDB権限を付与しますか? [閉鎖]

CentOS 7.2にZabbixをインストールするには、いくつかのチュートリアルに従っています。これは、zabbixデータベースを作成して権限を付与するために使用されるコマンドラインです。

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix; 
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit 
Bye

zabbix@ '%'に権限を付与するために使用されるコマンドを理解できません。ポイントは何ですか?

答え1

ホスト名が「%」の場合、すべてのホストの接続要求と一致します。とは別に localhost非常に重要な違いです!
つまり、コマンドを実行すると

grant all privileges on zabbix.* to zabbix@'%' identified by 'password';

「ワイルドカード」ホストなので、ユーザーがリモートシステムから接続できると考えること%もできます。zabbixそしてローカルホスト。
ただし、zabbixSQL Serverが実行されているのと同じシステムで接続しようとすると、Maria DBは接続を拒否し、

したがって、本当にzabbixどこからでも接続できるようにするには、以下を実行する必要があります。両方

grant all privileges on zabbix.* to zabbix@'localhost' identified by 'password';

そして

grant all privileges on zabbix.* to zabbix@'%' identified by 'password';

答え2

これMySQLリファレンスマニュアル非常によく説明されました。簡単な要約は次のとおりです。

接続識別子をユーザー名とソースホストに分割

  1. ユーザー名は、認証に使用したユーザー名と一致する必要があります。
  2. ホスト名が「%」の場合、元のホスト名と一致します。
  3. それ以外の場合は、ホスト名がリテラルDNS名と一致する必要があります。

関連情報