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

[](<>)

这[`USER_ATTRIBUTES`](information-schema-user-attributes-table.html)表（自 MySQL 8.0.21 起可用）提供有关用户评论和用户属性的信息。它从`mysql.user`系统表。

这[`USER_ATTRIBUTES`](information-schema-user-attributes-table.html)表有这些列：

-   `用户`

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

-   `主持人`

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

-   `属性`

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

#### 笔记

-   [`USER_ATTRIBUTES`](information-schema-user-attributes-table.html)是一个非标准`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`](information-schema-user-attributes-table.html)任何人都可以访问内容。从 MySQL 8.0.22 开始，[`USER_ATTRIBUTES`](information-schema-user-attributes-table.html)内容可通过以下方式访问：

    -   在以下情况下可以访问所有行：

        -   当前线程是副本线程。

        -   访问控制系统尚未初始化（例如，服务器以[`--skip-grant-tables`](server-options.html#option_mysqld_skip-grant-tables)选项）。

        -   当前经过身份验证的帐户具有[`更新`](privileges-provided.html#priv_update)要么[`选择`](privileges-provided.html#priv_select)的特权`mysql.user`系统表。

        -   当前经过身份验证的帐户具有[`创建用户`](privileges-provided.html#priv_create-user)和[`SYSTEM_USER`](privileges-provided.html#priv_system-user)特权。

    -   否则，当前经过身份验证的帐户可以看到该帐户的行。此外，如果该帐户有[`创建用户`](privileges-provided.html#priv_create-user)特权但不是[`SYSTEM_USER`](privileges-provided.html#priv_system-user)权限，它可以查看所有其他没有权限的帐户的行[`SYSTEM_USER`](privileges-provided.html#priv_system-user)特权。

    有关指定帐户注释和属性的更多信息，请参阅[第 13.7.1.3 节，“创建用户语句”](create-user.html).
