首页 > 解决方案 > 如何检查当前用户是否对 MySQL/MariaDB 有一定的权限?

问题描述

如何轻松检查当前用户是否具有特定权限,例如他是否可以运行以下语句:

INSERT INTO testdb (id) VALUES ('1');

当然,我可以尝试一下,但在知道要插入什么之前我需要这些信息。因为我没有删除权限,所以放入任何东西都不起作用。使用SHOW GRANTS;对我来说是不够的,因为它会非常复杂,因为我可以在很多方面拥有一定的特权,例如直接,通过角色,只为我的主机等。

有没有更简单的方法来检查我的权限?

非常感谢!

标签: mysqlmariadbprivileges

解决方案


您可以使用INFORMATION_SCHEMA来根据需要执行的操作查询所需的权限。

SELECT IF(COUNT(*) > 0, TRUE, FALSE) AS Allowed
FROM INFORMATION_SCHEMA.USER_PRIVILEGES
WHERE GRANTEE LIKE '%user%' AND PRIVILEGE_TYPE = 'INSERT'

推荐阅读