MySQL中查询用户权限的方法(mysql查询用户权限)

MySQL是一款用于管理数据库的关系型数据库系统,它非常强大,以其简单易用而备受启用,那么该如何查询MySQL中某一用户对数据库中某一数据表或操作类型的权限呢?本文将介绍MySQL中查询用户权限的几种方法,以方便用户管理自己的权限。

首先,MySQL用户权限的查询要从MySQL的各种系统表中提取,MySQL提供了两个系统表用于查询用户权限:

mysql.user表和mysql.host表,同时还关联mysql.db和 mysql.tables_priv表来查询用户的权限,代码如下:

SELECT 
User, Host, Db, Table_name,
Select_priv, Insert_priv, Update_priv,
Delete_priv, Create_priv, Drop_priv,
Grant_priv, References_priv, Index_priv, Alter_priv
FROM
mysql.user u, mysql.host h, mysql.db d, mysql.tables_priv t
WHERE
u.User = t.User
AND u.Host = h.Host
AND d.Db = t.Db
AND (u.User='当前用户名' OR u.Host='当前主机名');

其次,也可以使用MySQL提供的系统函数来查询其他用户的操作权限,MySQL提供了如下系统函数,分别针对MySQL各种权限进行获取:

SHOW GRANTS FOR  '用户名'@'主机名'

最后,还可以使用INFORMATION_SCHEMA来进行MySQL用户权限的查询,MySQL的INFORMATION_SCHEMA是一个非常有用的信息库,它提供了大量的数据库实用信息,如果想查询当前登录用户对数据库中某张表的所有操作的权限,可以使用如下语句:

SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES
WHERE GRANTEE='当前用户'
AND TABLE_NAME='表名';

总而言之,可以从mysql.user和mysql.host表、系统函数和INFORMATION_SCHEMA获得用户权限的信息,从而很方便的查询用户对数据库中某一表的操作权限或其他信息,从而保证网站的安全性。


数据运维技术 » MySQL中查询用户权限的方法(mysql查询用户权限)