我正在尝试将所有特权授予特定的IP,但是当我尝试获取特权IP的列表时,它始终仅显示本地主机,我按照此问题中的说明进行操作,但未做任何更改,我在做什么错?
MariaDB [(none)]> GRANT ALL ON database.* TO 'root'@'192.168.3.1' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> show slave status;
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation
mysql> show grants;
+------------------------------------------------------------------+
| Grants for root@192.168.1.5 |
+------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'192.168.1.5' |
| GRANT ALL PRIVILEGES ON `western_star`.* TO 'root'@'192.168.1.5' |
+------------------------------------------------------------------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
注意:
即使我以我的用户远程登录并且拥有权限,我仍然会被拒绝。
mysql> show slave status;
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation
mysql> show grants;
+------------------------------------------------------------------+
| Grants for root@192.168.1.5 |
+------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'root'@'192.168.1.5' |
| GRANT ALL PRIVILEGES ON `western_star`.* TO 'root'@'192.168.1.5' |
+------------------------------------------------------------------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
尝试运行以下语句:
SHOW GRANTS FOR 'root'@'192.168.3.1' ;
Run Code Online (Sandbox Code Playgroud)
并与从中得到的回报进行比较:
SHOW GRANTS FOR 'root'@'localhost' ;
Run Code Online (Sandbox Code Playgroud)
SHOW GRANTS显示当前用户的授权。
请注意,“ root @ localhost” 和“ root@192.168.3.1” 不是同一用户。MySQL通过用户和主机识别用户。(这是两个不同的用户。)
跟进
SUPER和REPLICATION CLIENT特权是全局特权,而不是数据库特权。授予这些特权的语法为ON *.*。例如:
GRANT REPLICATION CLIENT ON *.* TO 'root'@'192.168.1.5' ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1729 次 |
| 最近记录: |