该USER_ATTRIBUTES表(自 MySQL 8.0.21 起可用)提供有关用户评论和用户属性的信息。它从
mysql.user系统表中获取其值。
该USER_ATTRIBUTES表有以下列:
USERATTRIBUTE应用列值 的帐户的用户名部分 。HOSTATTRIBUTE列值适用 的帐户的主机名部分 。ATTRIBUTE属于
USER和HOST列指定的帐户的用户评论、用户属性或两者。该值采用 JSON 对象表示法。属性完全按照使用CREATE USER和 带有或 选项的ALTER USER语句设置显示。评论显示为具有作为键的键值对。有关其他信息和示例,请参阅 CREATE USER Comment and Attribute Options。ATTRIBUTECOMMENTcomment
笔记
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 语句”。