该USER_ATTRIBUTES
表(自 MySQL 8.0.21 起可用)提供有关用户评论和用户属性的信息。它从
mysql.user
系统表中获取其值。
该USER_ATTRIBUTES
表有以下列:
USER
ATTRIBUTE
应用列值 的帐户的用户名部分 。HOST
ATTRIBUTE
列值适用 的帐户的主机名部分 。ATTRIBUTE
属于
USER
和HOST
列指定的帐户的用户评论、用户属性或两者。该值采用 JSON 对象表示法。属性完全按照使用CREATE USER
和 带有或 选项的ALTER USER
语句设置显示。评论显示为具有作为键的键值对。有关其他信息和示例,请参阅 CREATE USER Comment and Attribute Options。ATTRIBUTE
COMMENT
comment
笔记
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
选项启动)。当前通过身份验证的帐户具有
CREATE USER
和SYSTEM_USER
权限。
否则,当前经过身份验证的帐户可以看到该帐户的行。此外,如果帐户有
CREATE USER
权限但没有SYSTEM_USER
权限,它可以看到所有其他没有SYSTEM_USER
权限的帐户的行。
有关指定帐户评论和属性的更多信息,请参阅第 13.7.1.3 节,“CREATE USER 语句”。