Documentation Home
MySQL 8.0 参考手册  / 第 26 章 INFORMATION_SCHEMA 表  / 26.3 INFORMATION_SCHEMA 总表  /  26.3.46 INFORMATION_SCHEMA USER_ATTRIBUTES 表

26.3.46 INFORMATION_SCHEMA USER_ATTRIBUTES 表

USER_ATTRIBUTES表(自 MySQL 8.0.21 起可用)提供有关用户评论和用户属性的信息。它从 mysql.user系统表中获取其值。

USER_ATTRIBUTES表有以下列:

  • USER

    ATTRIBUTE应用列值 的帐户的用户名部分 。

  • HOST

    ATTRIBUTE列值适用 的帐户的主机名部分 。

  • ATTRIBUTE

    属于USERHOST列指定的帐户的用户评论、用户属性或两者。该值采用 JSON 对象表示法。属性完全按照使用 CREATE USER和 带有或 选项的ALTER USER语句设置显示。评论显示为具有作为键的键值对。有关其他信息和示例,请参阅 CREATE USER Comment and Attribute OptionsATTRIBUTECOMMENTcomment

笔记

  • USER_ATTRIBUTES是一个非标准 INFORMATION_SCHEMA表。

  • 要仅获取给定用户的用户评论作为未加引号的字符串,您可以使用如下查询:

    mysql> SELECT ATTRIBUTE->>"$.comment" AS Comment
        ->     FROM INFORMATION_SCHEMA.USER_ATTRIBUTES
        ->     WHERE USER='bill' AND HOST='localhost';
    +-----------+
    | Comment   |
    +-----------+
    | A comment |
    +-----------+

    同样,您可以使用其键获取给定用户属性的未加引号的值。

  • 在 MySQL 8.0.22 之前, USER_ATTRIBUTES任何人都可以访问内容。从 MySQL 8.0.22 开始, USER_ATTRIBUTES可以通过以下方式访问内容:

    • 如果出现以下情况,所有行都可以访问:

      • 当前线程是副本线程。

      • 访问控制系统尚未初始化(例如,服务器以 --skip-grant-tables 选项启动)。

      • 当前经过身份验证的帐户 对系统表 具有UPDATESELECT权限。mysql.user

      • 当前通过身份验证的帐户具有 CREATE USERSYSTEM_USER权限。

    • 否则,当前经过身份验证的帐户可以看到该帐户的行。此外,如果帐户有 CREATE USER权限但没有SYSTEM_USER 权限,它可以看到所有其他没有SYSTEM_USER 权限的帐户的行。

有关指定帐户评论和属性的更多信息,请参阅第 13.7.1.3 节,“CREATE USER 语句”