MariaDB のユーザー権限

MariaDB のユーザー権限

私は MariaDB 10.1 インスタンス (Debian GNU/Linux 9 テスト/不安定版) を持っています。これはローカル ネットワーク データベース サーバーとしてのみ機能します。この質問の範囲外の理由により、そのサーバーはデータベース自体以外のものをホストしてはならず、データベースはサーバーの IP アドレス (10.7.33.102) でリッスンする必要があります。

サーバー シェルからデータベースに接続すると、すべて正常になります。

root@datangshan:~# mysql
[...]
MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| drackmd            |
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

これはdrackmd他のホストが使用する必要があるデータベースです。root次のコマンドを使用して、ユーザーが別のホストから接続できるようにしてみました。

grant all privileges on `*`.`*` to 'root'@'10.7.33.107' identified by 'secret' with grant option;

次に、10.7.33.107 のサーバーから DB サーバーに接続できますが、ユーザーにrootは何らかの権限がないようです。

[email protected]:~# mysql -h 10.7.33.102 -p
Enter password: 
[...]
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

rootすべてのデータベースとその中のすべてのテーブルをDB サーバー (または他のユーザー) に表示するには、どのようなコマンドを発行すればよいですか?

答え1

#mariaIRC のチャンネルで得た解決策:

drop user 'root'@'10.7.33.107';
drop user 'root'@'%';
flush privileges;
grant all on `*`.`*` to 'root'@'10.7.33.107' identified by 'secret' with grant option;

違いに注意してください:grant all on ...ではなく ですgrant all PRIVILEGES on...

関連情報