以下是检查特定用户资助的方法:
mysql> SHOW GRANTS FOR mmuser1;
+-----------------------------------------------------------------------------------------------------------------+
| Grants for mmuser1@% |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'mmuser1'@'%' IDENTIFIED BY PASSWORD '*fesfesfesfes' |
| GRANT ALL PRIVILEGES ON `shopping_mm`.* TO 'mmuser1'@'%'
但是,如果我执行以下操作:
mysql -ummuser1 -p
我可以访问并查询另一个数据库(体育)。此外,在做的时候:
SELECT Db,User FROM db;
我可以看到此Db与此用户相关联。
如何才能在Grants表中显示?
答案 0 :(得分:1)
正如SHOW GRANTS
Syntax所述:
如果仅指定帐户名称的用户名部分,则使用
'%'
的主机名部分。
您可能已使用明确的主机名授予您的用户权限,例如: 'mmuser1'@'localhost'
。正如稍后在同一页面上所述,这可以在连接后进行验证:
要列出授予您用于连接服务器的帐户的权限,可以使用以下任何语句:
SHOW GRANTS; SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER();
或者,只需检查CURRENT_USER
:
SELECT CURRENT_USER;
答案 1 :(得分:0)
也许你有一个通配符用户,通常默认设置在Mysql中?
用户名或主机的任何或%将允许DB的任何用户名/主机权限,如下图所示
您应该删除MySQL中通常默认的用户
这张图片是与MYSQL一起安装的默认帐户,一旦你创建一个新用户就应该删除它们,因为它们都不是安全的,它们允许 - 任何用户名USAGE访问db的