如何在 MySQL 中列出用户和权限

用户信息存储在mysql数据库的用户系统表中。

一个用户由两部分组成:用户名和用户连接的主机,因此要获取用户列表,需要同时包含用户表中的用户和主机列:

mysql> SELECT User, Host, CONCAT(User, '@', Host) AS Username
  FROM mysql.user;

我们还可以运行以下命令,该命令会检查 information_schema.USER_PRIVILEGES 表:

shell> mysql -B -N -e "SELECT DISTINCT CONCAT('SHOW GRANTS FOR ', GRANTEE, ';') FROM information_schema.USER_PRIVILEGES" > show-grants.sql

要获取给定用户的权限列表,可以使用 SHOW GRANTS 命令,例如在从 localhost 登录时获取 root 用户的权限:

SHOW GRANTS FOR 'root'@'localhost';

要获取对某些架构授予权限的用户列表,可以使用以下查询(请注意,架构删除后架构的权限会保持不变):

SELECT User FROM mysql.db WHERE Db ="[schema]";
日期:2020-09-17 00:11:09 来源:oir作者:oir