【问题标题】:View grants in MySQL在 MySQL 中查看授权
【发布时间】:2008-09-24 14:58:55
【问题描述】:

如何在 MySQL 中查看给定用户的授权(访问权限)?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可能需要Show Grants Statement

    SHOW GRANTS [FOR user]
    

    此语句以必须执行的 GRANT 语句的形式显示分配给 MySQL 用户帐户的权限以复制权限分配。

    要显示授予当前用户(您用于连接服务器的帐户)的权限,您可以使用以下任何语句:

    SHOW GRANTS;
    SHOW GRANTS FOR CURRENT_USER;
    SHOW GRANTS FOR CURRENT_USER();
    

    注意:
    SHOW GRANTS 需要 mysql 系统数据库的 SELECT 权限,但显示当前用户的权限除外。\

    直接来自官网

    【讨论】:

      【解决方案2】:
      mysql> show grants for 'user'@'host'
      

      【讨论】:

      • SHOW GRANTS 如果您只对当前用户感兴趣。
      【解决方案3】:

      最新版本的 MySQL 的另一种方法是:

      select * from information_schema.user_privileges where grantee like "'user'%";
      

      这种格式的可能优势是增加了检查来自任何主机的“用户”授权(假设用户名一致)或使用附加条件检查特定权限(例如,privilege_type = 'delete')的灵活性。

      这个版本可能更适合在脚本中使用,而“show grants”语法更适合交互式会话(更“人类可读”)。

      【讨论】:

      • +1 :这也允许检查表和特定权限,这在某些情况下很有用(而不仅仅是 SHOW GRANTS 返回的文本描述)。
      • 这对于调试不正确创建的授权也很有帮助。如果您授予错误的用户或主机,则可能很难从 SHOW GRANTS 获得所需的内容;
      • 别忘了其他与授权相关的表 SCHEMA_PRIVILEGES、TABLE_PRIVILEGES 甚至 COLUMN_PRIVILEGES
      【解决方案4】:

      你可以试试这个:

      SELECT GRANTEE, PRIVILEGE_TYPE FROM information_schema.user_privileges;
      SELECT User,Host,Db FROM mysql.db;
      

      【讨论】:

        【解决方案5】:

        您可能想查看来自Maatkit 的 mk-show-grants,它将以规范的形式为所有用户输出当前的授权集,从而使版本控制或复制更加直接。

        【讨论】:

          【解决方案6】:

          如果您已经在使用 PHP 运行 Web 服务器,那么 phpMyAdmin 是一个相当友好的管理工具。

          【讨论】:

          • 啊哈!安装 phpMyAdmin 后,授权变得更加容易!很棒的提示:-)
          猜你喜欢
          • 2016-03-28
          • 2020-12-07
          • 2021-12-07
          • 2011-03-07
          • 1970-01-01
          • 2011-02-11
          • 2016-08-04
          • 2019-06-15
          相关资源
          最近更新 更多