# 26.3.46 信息_架构用户_属性表

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

USER_ATTRIBUTES表有这些列:

  • 用户

    帐户的用户名部分,属性列值适用。

  • 主持人

    帐户的主机名部分,属性列值适用。

  • 属性

    属于指定帐户的用户评论、用户属性或两者用户主持人列。该值采用 JSON 对象表示法。属性完全按照设置显示使用创建用户更改用户与声明属性要么评论选项。评论显示为键值对,具有评论作为关键。有关其他信息和示例,请参阅CREATE USER 注释和属性选项.

# 笔记

  • 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选项)。

      • 当前经过身份验证的帐户具有更新要么选择的特权mysql.user系统表。

      • 当前经过身份验证的帐户具有创建用户SYSTEM_USER特权。

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

    有关指定帐户注释和属性的更多信息,请参阅第 13.7.1.3 节,“创建用户语句”.