【发布时间】:2008-09-24 14:58:55
【问题描述】:
如何在 MySQL 中查看给定用户的授权(访问权限)?
【问题讨论】:
标签: mysql
如何在 MySQL 中查看给定用户的授权(访问权限)?
【问题讨论】:
标签: mysql
SHOW GRANTS [FOR user]
此语句以必须执行的 GRANT 语句的形式显示分配给 MySQL 用户帐户的权限以复制权限分配。
要显示授予当前用户(您用于连接服务器的帐户)的权限,您可以使用以下任何语句:
SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();
注意:
SHOW GRANTS 需要 mysql 系统数据库的 SELECT 权限,但显示当前用户的权限除外。\
直接来自官网
【讨论】:
mysql> show grants for 'user'@'host'
【讨论】:
SHOW GRANTS 如果您只对当前用户感兴趣。
最新版本的 MySQL 的另一种方法是:
select * from information_schema.user_privileges where grantee like "'user'%";
这种格式的可能优势是增加了检查来自任何主机的“用户”授权(假设用户名一致)或使用附加条件检查特定权限(例如,privilege_type = 'delete')的灵活性。
这个版本可能更适合在脚本中使用,而“show grants”语法更适合交互式会话(更“人类可读”)。
【讨论】:
你可以试试这个:
SELECT GRANTEE, PRIVILEGE_TYPE FROM information_schema.user_privileges;
SELECT User,Host,Db FROM mysql.db;
【讨论】:
您可能想查看来自Maatkit 的 mk-show-grants,它将以规范的形式为所有用户输出当前的授权集,从而使版本控制或复制更加直接。
【讨论】:
如果您已经在使用 PHP 运行 Web 服务器,那么 phpMyAdmin 是一个相当友好的管理工具。
【讨论】: