MariaDB 中的用户权限

MariaDB 中的用户权限

我有一个 MariaDB 10.1 实例(Debian GNU/Linux 9 测试版/不稳定版)。它只是一个本地网络数据库服务器,没有其他用途。出于超出此问题范围的原因,该服务器除了数据库本身外不得承载任何其他内容,数据库本身必须监听服务器 IP 地址(10.7.33.102)。

如果我从服务器 shell 连接到数据库,一切正常:

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 的服务器,我可以连接到数据库服务器,但用户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(或其他用户)看到所有数据库及其中的所有表?

答案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...

相关内容