10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.1 kb
手册页(Zip)- 372.2 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

13.7.1.3 CREATE USER语句

创建用户[如果不存在]用户auth_option] [,用户auth_option]]…默认角色角色(,角色)……[require {none | .tls_option[[和]tls_option)……}] [与resource_optionresource_option)……] [password_option|lock_option)……(评论comment_string' |属性'json_object']用户:(参见第6.2.4节“指定帐户名称”)auth_option:{由'标识auth_string' |由随机密码|由auth_plugin|与auth_plugin由“auth_string' |与auth_plugin由随机密码|识别auth_plugin为“auth_string'}tls_option: {SSL | x509 |密码'密码“|发行者”发行人' | subject '主题'}resource_option: {max_queries_per_hour| MAX_UPDATES_PER_HOUR| MAX_CONNECTIONS_PER_HOUR| MAX_USER_CONNECTIONSpassword_option: {password expire [default | never | interval .N|密码历史{默认|N} |密码重用间隔{默认| .NDay} | password require current [default | optional] | failed_login_attempts .[默认|可选N|密码锁时间{N| unbounded}}lock_option:{帐户锁定|帐户解锁}

创建用户语句创建新的MySQL帐户。它允许为新帐户建立身份验证、角色、SSL/TLS、资源限制、密码管理、评论和属性属性。它还可以控制帐户最初是锁定还是解锁。

使用创建用户,你必须有全局创建用户特权,或者插入特权mysql系统模式。当read_only系统变量已启用,创建用户另外还要求CONNECTION_ADMIN特权(或已弃用的特权超级特权)。

从MySQL 8.0.22开始,创建用户如果要创建的任何帐户命名为定义者属性用于任何存储对象。(也就是说,如果创建帐户将导致帐户采用当前孤立的存储对象,则语句失败。)要执行该操作,您必须具有SET_USER_ID特权;在这种情况下,语句成功并发出警告,而不是失败并出现错误。没有SET_USER_ID,执行用户创建操作,删除孤立对象,创建帐户并授予其权限,然后重新创建被删除的对象。有关其他信息,包括如何识别哪些对象将给定帐户命名为定义者属性,看到孤儿存储对象

创建用户对于所有指定的用户,要么成功,要么回滚,如果发生任何错误,则无效。默认情况下,如果尝试创建一个已经存在的用户,将会发生错误。如果如果不存在子句时,该语句将为已经存在的每个已命名用户生成警告,而不是错误。

重要的

在某些情况下,创建用户可以记录在服务器日志或客户端的历史文件中,例如~ / .mysql_history,这意味着任何对该信息有读访问权的人都可能读取明文密码。有关服务器日志发生这种情况的条件以及如何控制它的信息,请参见第6.1.2.3节“密码及登入”.有关客户端日志记录的类似信息,请参见章节4.5.1.3,“mysql客户端日志”

有几个方面创建用户声明,在以下主题下进行说明:

创建用户概述

对于每个账户,创建用户对象中创建新行mysql.user系统表。帐户行反映了语句中指定的属性。未指定的属性被设置为默认值:

  • Authentication:默认的身份验证插件(如默认认证插件),以及空白的凭证

  • 默认角色:没有一个

  • SSL / TLS:没有一个

  • 资源限制:无限

  • 密码管理:密码过期默认密码历史默认密码重用间隔默认密码要求当前默认;禁用失败登录跟踪和临时帐户锁定

  • 帐户锁定:账号解锁

帐户在首次创建时没有任何特权,默认角色为没有一个.要分配特权或角色,请使用格兰特声明。

每个帐户名称使用中描述的格式章节6.2.4,“指定帐户名称”.例如:

创建用户“jeffrey”@“localhost”密码”;

帐户名的主机名部分,如果省略,默认为“%”

每一个用户值命名帐户,后面可以跟着一个可选参数auth_option值,该值指示帐户如何进行身份验证。这些值允许指定帐户身份验证插件和凭据(例如,密码)。每一个auth_option应用价值只有到紧挨着名字的账户。

后,用户在规范中,该语句可能包括SSL/TLS、资源限制、密码管理和锁定属性的选项。所有这些选项都是全球以陈述并适用于所有报表中提到的账户。

示例:创建一个使用默认认证插件和给定密码的帐户。标记密码过期,以便用户在第一次连接到服务器时选择一个新密码:

创建用户“jeffrey”@“localhost”new_password'密码过期;

示例:创建一个使用caching_sha2_password身份验证插件和给定的密码。要求每180天选择一个新密码,并启用失败登录跟踪,这样连续三个错误的密码会导致帐户临时锁定两天:

创建用户'jeffrey'@'localhost' IDENTIFIED WITH cache_sha2_password BY 'new_password'密码过期间隔180天failed_login_attempts 3 password_lock_time 2;

示例:创建多个帐户,指定一些每个帐户的属性和一些全局属性:

创建mysql_native_password用户jeffrey @ localhostnew_password1', 'jeanne'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'new_password2' require x509 with max_queries_per_hour 60 password history 5 account lock;

每一个auth_option值(认同……通过在这种情况下)只适用于紧挨着它命名的帐户,所以每个帐户使用紧跟着的身份验证插件和密码。

其余属性全局应用于语句中命名的所有帐户,因此对于这两个帐户:

  • 必须使用有效的X.509证书进行连接。

  • 每小时最多允许60个查询。

  • 修改密码时不能重复使用最近的5个密码。

  • 该帐户最初是锁定的,因此实际上它是一个占位符,在管理员解锁之前不能使用。

创建用户认证选项

帐户名后面可以跟着auth_option身份验证选项,指定帐户身份验证插件、凭据或两者。

请注意

生成随机密码的子句仅适用于使用身份验证插件的帐户,该插件在MySQL内部存储凭据。对于使用插件对MySQL外部的凭据系统执行身份验证的帐户,密码管理也必须在外部对该系统进行处理。有关内部凭证存储的详细信息,请参见章节6.2.15“密码管理”

  • auth_plugin命名一个认证插件。插件名可以是带引号的字符串文字,也可以是不带引号的名称。插件名称存储在插件的列mysql.user系统表。

    auth_option语法中没有指定身份验证插件时,服务器分配默认插件,如中所述确定默认认证插件.有关每个插件的描述,请参见章节6.4.1,“认证插件”

  • 内部存储的凭据存储在mysql.user系统表。一个auth_string值或随机密码指定帐户凭据,可以是明文(未加密)字符串,也可以是与帐户相关的身份验证插件所期望的散列格式:

    • 对于使用由“auth_string,该字符串是明文,并被传递给身份验证插件以进行可能的哈希。插件返回的结果存储在mysql.user表格插件可以使用指定的值,在这种情况下不会发生哈希。

    • 对于使用随机密码, MySQL生成一个随机密码和明文,并将其传递给身份验证插件,以进行可能的哈希。插件返回的结果存储在mysql.user表格插件可以使用指定的值,在这种情况下不会发生哈希。

      随机生成的密码在MySQL 8.0.18中可用,并具有中描述的特征随机密码生成

    • 对于使用为“auth_string时,假定该字符串已经具有身份验证插件所需的格式,并按mysql.user表格如果一个插件需要一个散列值,该值必须已经以适合该插件的格式散列;否则,该值不能被插件使用,客户端连接的正确身份验证也不会发生。

      从MySQL 8.0.17开始,散列字符串既可以是字符串字面值,也可以是十六进制值。后者对应于显示的值的类型显示创建用户对于包含不可打印字符的密码哈希print_identified_with_as_hex启用系统变量。

    • 如果身份验证插件不执行身份验证字符串的散列,则由“auth_string而且为“auth_string子句具有相同的效果:身份验证字符串与mysql.user系统表。

创建用户允许这些auth_option语法:

  • 标识为'auth_string

    将帐户认证插件设置为默认插件,传递cleartextauth_string的帐户行中存储结果mysql.user系统表。

  • 随机密码识别

    将帐户认证插件设置为默认插件,生成一个随机密码,将明文密码值传递给插件进行可能的散列,并将结果存储在帐户行中mysql.user系统表。该语句还在结果集中返回明文密码,以便执行该语句的用户或应用程序可以使用该密码。随机生成密码的结果集和特征请参见随机密码生成

  • 认同auth_plugin

    将帐户身份验证插件设置为auth_plugin,将凭据清除到空字符串,并将结果存储在mysql.user系统表。

  • 认同auth_plugin由“auth_string

    将帐户身份验证插件设置为auth_plugin,传递明文auth_string的帐户行中存储结果mysql.user系统表。

  • 认同auth_plugin随机密码

    将帐户身份验证插件设置为auth_plugin,生成一个随机密码,将明文密码值传递给插件进行可能的散列,并将结果存储在mysql.user系统表。该语句还在结果集中返回明文密码,以便执行该语句的用户或应用程序可以使用该密码。随机生成密码的结果集和特征请参见随机密码生成

  • 认同auth_plugin为“auth_string

    将帐户身份验证插件设置为auth_plugin并存储auth_string的值mysql.user账户行。如果插件需要一个散列字符串,则假定该字符串已经按照插件要求的格式散列了。

示例:指定密码为cleartext;使用默认插件:

创建用户“jeffrey”@“localhost”密码”;

示例:指定认证插件,以及一个明文密码值:

创建mysql_native_password用户jeffrey @ localhost密码”;

在每种情况下,帐户行中存储的密码值都是明文值密码在它被与该帐户关联的身份验证插件散列之后。

有关设置密码和身份验证插件的其他信息,请参见第6.2.14节“分配帐户密码”,第6.2.17节“可插拔身份验证”

创建用户角色选项

默认角色子句定义当用户连接到服务器并进行身份验证时,或当用户执行设置角色default会话期间的语句。

每个角色名称使用中描述的格式章节6.2.5,“指定角色名”.例如:

创建用户'joe'@'10.0.0.1'

如果省略角色名的主机名部分,默认为“%”

默认角色子句允许一个或多个以逗号分隔的角色名的列表。这些角色必须在当时存在创建用户执行;否则,语句将引发错误(ER_USER_DOES_NOT_EXIST),不会创建该用户。

创建用户SSL/TLS选项

MySQL可以检查X.509证书属性,除了通常的基于用户名和凭证的身份验证。有关在MySQL中使用SSL/TLS的背景信息,请参见第6.3节“使用加密连接”

要为MySQL帐户指定与SSL/ tls相关的选项,请使用需要子句,指定一个或多个tls_option值。

的顺序需要选项无关紧要,但任何选项都不能指定两次。的关键字是可选的需要选项。

创建用户允许这些tls_option价值观:

  • 没有一个

    指示由该语句命名的所有帐户没有SSL或X.509要求。如果用户名和密码有效,则允许未加密的连接。如果客户端拥有适当的证书和密钥文件,则可以根据客户端选择使用加密连接。

    创建用户jeffrey @ localhost

    默认情况下,客户端尝试建立安全连接。对于有不需要进行,如果无法建立安全连接,则连接尝试将退回到未加密的连接。要要求加密连接,客户机只需指定——ssl-mode =要求选择;如果无法建立安全连接,则连接尝试失败。

    没有一个如果没有ssl相关,默认是什么需要指定选项。

  • SSL

    告诉服务器只允许该语句指定的所有帐户的加密连接。

    创建用户jeffrey @ localhost

    默认情况下,客户端尝试建立安全连接。对于有需要SSL,如果无法建立安全连接,则连接尝试失败。

  • X509

    对于声明中指定的所有帐户,要求客户端提供有效的证书,但是确切的证书、颁发者和主题并不重要。唯一的要求是,应该能够使用其中一个CA证书来验证其签名。使用X.509证书总是意味着加密,因此SSL在这种情况下,选项是不必要的。

    CREATE USER 'jeffrey'@'localhost' REQUIRE X509;

    适用于需要X509,客户端必须指定——ssl密钥而且——ssl-cert连接选项。(这是推荐的,但不是必须的——ssl-ca还要指定,以便可以验证服务器提供的公共证书。)这是对的发行人而且主题因为这些需要选项暗示的要求X509

  • 发行人的发行人

    对于声明中指定的所有帐户,要求客户端提供由CA颁发的有效X.509证书发行人.如果客户端提供的证书是有效的,但颁发者不同,服务器将拒绝该连接。使用X.509证书总是意味着加密,因此SSL在这种情况下,选项是不必要的。

    CREATE USER 'jeffrey'@'localhost' REQUIRE ISSUER '/C=SE/ST=Stockholm/L=Stockholm/ O=MySQL/CN=CA/emailAddress=ca@example.com';

    因为发行人包含以下要求X509,客户端必须指定——ssl密钥而且——ssl-cert连接选项。(这是推荐的,但不是必须的——ssl-ca还要指定,以便可以验证服务器提供的公共证书。)

  • 主题的主题

    对于该语句指定的所有帐户,要求客户端提供包含该主题的有效X.509证书主题.如果客户端提供的证书有效但主题不同,服务器将拒绝该连接。使用X.509证书总是意味着加密,因此SSL在这种情况下,选项是不必要的。

    CREATE USER 'jeffrey'@'localhost' REQUIRE SUBJECT '/C=SE/ST=Stockholm/L=Stockholm/ O=MySQL演示客户端证书/ CN=client/emailAddress=client@example.com';

    的简单字符串比较主题值与证书中的值对应,因此字母大小写和组件顺序必须与证书中给出的完全一致。

    因为主题包含以下要求X509,客户端必须指定——ssl密钥而且——ssl-cert连接选项。(这是推荐的,但不是必须的——ssl-ca还要指定,以便可以验证服务器提供的公共证书。)

  • 密码的密码

    对于由语句命名的所有帐户,需要特定的密码方法来加密连接。需要此选项以确保使用足够强度的密码和密钥长度。如果使用使用短加密密钥的旧算法,加密可能会很弱。

    CREATE USER 'jeffrey'@'localhost' REQUIRE CIPHER 'EDH-RSA-DES-CBC3-SHA';

主题发行人,密码选项可以组合在需要条款:

CREATE USER 'jeffrey'@'localhost' REQUIRE SUBJECT '/C=SE/ST=Stockholm/L=Stockholm/ O=MySQL demo客户端证书/CN= client/emailAddress=client@example.com' AND ISSUER '/C=SE/ST=Stockholm/L=Stockholm/ O=MySQL/CN=CA/emailAddress=ca@example.com' AND CIPHER 'EDH-RSA-DES-CBC3-SHA';
创建用户资源限制选项

可以对帐户使用的服务器资源进行限制,如中所讨论的第6.2.20节“设置帐户资源限制”.要做到这一点,请使用子句,指定一个或多个resource_option值。

的顺序选项无关紧要,但如果多次指定给定的资源限制,则最后一个实例优先。

创建用户允许这些resource_option价值观:

  • MAX_QUERIES_PER_HOURMAX_UPDATES_PER_HOURMAX_CONNECTIONS_PER_HOUR

    对于语句指定的所有帐户,这些选项限制在任何给定的一小时内允许每个帐户进行多少次查询、更新和连接到服务器。如果0(默认值),这意味着该帐户没有限制。

  • MAX_USER_CONNECTIONS

    对于由语句命名的所有帐户,限制每个帐户同时连接到服务器的最大数量。一个非零显式地指定帐户的限制。如果0的全局值确定该帐户的同时连接数(默认值)max_user_connections系统变量。如果max_user_connections也是零,对账户没有限制。

例子:

创建用户'jeffrey'@'localhost', MAX_QUERIES_PER_HOUR 500;
创建用户密码管理选项

创建用户支持多种password_option密码管理取值:

  • 密码过期选项:用户可以手动设置帐户密码过期策略。策略选项不会使密码过期。相反,它们决定服务器如何根据密码年龄对帐户应用自动过期,密码年龄是根据最近帐户密码更改的日期和时间来评估的。

  • 密码重用选项:可以根据密码更改次数、时间或两者同时限制密码重用。

  • 密码验证所需选项:您可以指示尝试更改帐户密码时是否必须指定当前密码,以验证试图进行更改的用户实际上知道当前密码。

  • 错误密码登录失败跟踪选项:您可以使服务器跟踪失败的登录尝试,并临时锁定连续多次输入错误密码的帐户。所需的失败次数和锁定时间是可配置的。

介绍密码管理选项的语法。有关建立密码管理策略的信息,请参见章节6.2.15“密码管理”

如果指定了给定类型的多个密码管理选项,则最后一个优先。例如,Password expire默认密码永不过期密码永不过期

请注意

除了与失败登录跟踪相关的选项外,密码管理选项仅适用于使用身份验证插件的帐户,该插件在MySQL内部存储凭据。对于使用插件对MySQL外部的凭据系统执行身份验证的帐户,密码管理也必须在外部对该系统进行处理。有关内部凭证存储的详细信息,请参见章节6.2.15“密码管理”

如果帐户密码手动过期,或者根据自动过期策略,认为密码年龄大于其允许的生命期,则客户端具有过期的密码。在这种情况下,服务器要么断开客户端连接,要么限制允许它进行的操作(参见章节6.2.16“服务器对过期密码的处理”).受限制的客户端执行的操作将导致错误,直到用户建立新的帐户密码。

创建用户允许这些password_option密码过期控制值:

  • 密码到期

    立即标记该语句指定的所有帐户的密码过期。

    创建用户jeffrey @ localhost密码过期;
  • 密码过期default

    属性所指定的,设置由语句命名的所有帐户,以便应用全局过期策略default_password_lifetime系统变量。

    创建用户jeffrey @ localhost密码过期
  • 密码永不过期

    此过期选项将覆盖该语句指定的所有帐户的全局策略。对于每一个,它都禁用密码过期,以便密码永远不会过期。

    创建用户jeffrey @ localhost密码过期
  • 密码过期时间N一天

    此过期选项将覆盖该语句指定的所有帐户的全局策略。对于每一个,它将密码生存期设置为N天。下面的语句要求密码每180天修改一次:

    创建用户'jeffrey'@'localhost'密码过期间隔180天

创建用户允许这些password_option基于最小密码修改次数控制以前密码重复使用的值:

  • 密码历史默认

    属性所指定的更改次数之前,设置由该语句命名的所有帐户,以便应用关于密码历史长度的全局策略,以禁止重复使用密码password_history系统变量。

    创建用户'jeffrey'@'localhost'
  • 密码历史N

    这个历史长度选项将覆盖由语句命名的所有帐户的全局策略。对于每一个,它将密码历史长度设置为N密码,禁止重复使用的任何N最近选择的密码。下面的语句禁止重复使用前6个密码中的任何一个:

    创建用户'jeffrey'@'localhost'

创建用户允许这些password_option基于时间间隔的旧密码重用控制:

  • 密码重用间隔default

    属性所指定的天数更新的密码,将设置以帐户命名的所有语句,以便应用关于时间流逝的全局策略,以禁止重复使用更新于该帐户指定天数的密码password_reuse_interval系统变量。

    创建用户'jeffrey'@'localhost'密码重用间隔默认值;
  • 密码重用间隔N一天

    此时间流逝选项将覆盖该语句命名的所有帐户的全局策略。对于每一个,它将密码重用间隔设置为N天,以禁止重复使用超过这个天数的密码。以下语句禁止密码重复使用360天:

    创建用户'jeffrey'@'localhost'密码重复使用间隔360天;

创建用户允许这些password_option用于控制尝试更改帐户密码是否必须指定当前密码的值,以验证尝试更改帐户密码的用户实际上知道当前密码:

  • 密码要求电流

    此验证选项将覆盖由语句命名的所有帐户的全局策略。对于每一种情况,它都要求密码更改指定当前密码。

    创建用户jeffrey @ localhost密码
  • 密码要求当前可选

    此验证选项将覆盖由语句命名的所有帐户的全局策略。对于每一种方法,它都不要求修改密码时指定当前密码。(可提供但不必提供当前密码。)

    创建用户'jeffrey'@'localhost'密码要求当前可选;
  • 密码要求当前默认

    属性所指定的,设置以帐户命名的所有语句,以便应用关于密码验证的全局策略password_require_current系统变量。

    创建用户'jeffrey'@'localhost'密码要求当前默认值;

从MySQL 8.0.19开始,创建用户允许这些password_option控制登录失败跟踪的值:

  • FAILED_LOGIN_ATTEMPTSN

    是否跟踪指定错误密码的帐户登录尝试。N必须是0到32767之间的数字。值为0将禁用失败登录跟踪。大于0的值表示连续多少次密码失败导致临时帐户锁定(如果PASSWORD_LOCK_TIME也是非零的)。

  • PASSWORD_LOCK_TIME {N|无限}

    在多次连续登录尝试提供错误密码后,多长时间锁定帐户。N必须是0到32767之间的数字,还是无限.值为0禁用临时帐户锁定。值大于0表示锁定天数。值为无限导致帐号锁定时间不受限制;一旦锁定,帐户将一直处于锁定状态,直到解锁为止。有关发生解锁的条件的信息,请参见登录失败跟踪和临时帐户锁定

对于失败的登录跟踪和临时锁定发生,帐户的FAILED_LOGIN_ATTEMPTS而且PASSWORD_LOCK_TIME选项都必须非零。下面的语句将创建一个连续4次密码失败后仍被锁定2天的帐户:

CREATE USER 'jeffrey'@'localhost' FAILED_LOGIN_ATTEMPTS 4 PASSWORD_LOCK_TIME 2;
创建用户注释和属性选项

从MySQL 8.0.21开始,你可以创建一个带有可选注释或属性的帐户,如下所述:

  • 用户评论

    若要设置用户注释,请添加评论的user_comment创建用户声明,user_comment是用户注释的文本。

    示例(省略任何其他选项):

    CREATE USER 'jon'@'localhost' COMMENT '关于jon的一些信息';
  • 用户属性

    用户属性是一个JSON对象,由一个或多个键值对组成,通过include设置属性”json_object作为的一部分创建用户json_object必须是有效的JSON对象。

    示例(省略任何其他选项):

    创建用户'jim'@'localhost' ATTRIBUTE '{"fname": "James", "lname": "Scott", "phone": "123-456-7890"}';

用户注释和用户属性一起存储在属性的列INFORMATION_SCHEMA。USER_ATTRIBUTES表格该查询显示由刚刚为创建用户而显示的语句插入的表中的行jim@localhost

mysql> SELECT * FROM INFORMATION_SCHEMAUSER_ATTRIBUTES-> WHERE USER = 'jim' AND HOST = 'localhost'\G *************************** 1. row *************************** USER: jim HOST: localhost ATTRIBUTE: {"fname": "James", "lname": "Scott", "phone": "123-456-7890"} 1 row in set (0.00 sec)

评论选项实际上提供了设置用户属性的快捷方式,该用户属性的唯一元素为评论作为它的键,其值是为选项提供的参数。您可以通过执行语句来查看这一点创建用户“jon”@“localhost”COMMENT“jon的一些信息”,并观察它插入到的行USER_ATTRIBUTES表:

mysql> CREATE USER 'jon'@'localhost' COMMENT '一些关于jon的信息';mysql> SELECT * FROM INFORMATION_SCHEMA(0.06秒)USER_ATTRIBUTES -> WHERE USER = 'jon' AND HOST = 'localhost';+------+-----------+-------------------------------------------+ | 主机用户| |属性  | +------+-----------+-------------------------------------------+ | jon | localhost |{“评论”:“有些乔恩的信息 "} | +------+-----------+-------------------------------------------+ 1行集(0.00秒)

你不能使用评论而且属性在同一个世界里创建用户声明;尝试这样做会导致语法错误。要在设置用户属性的同时设置用户注释,请使用属性并在其参数中包含一个带有a的值评论键,像这样:

mysql> CREATE USER 'bill'@'localhost' -> ATTRIBUTE '{"fname":"William", "lname":"Schmidt", -> "comment":"Website developer"}';查询OK, 0行受影响(0.16秒)

自的内容属性row是一个JSON对象,你可以使用任何合适的MySQL JSON函数或操作符来操作它,如下所示:

mysql> SELECT -> USER AS USER, -> HOST AS HOST, -> CONCAT(ATTRIBUTE->>"$。fname"," ",ATTRIBUTE->>"$.lname") AS '全名',-> ATTRIBUTE->>"$. Comment " AS Comment -> FROM INFORMATION_SCHEMA。USER_ATTRIBUTES -> WHERE USER='bill' AND HOST='localhost';+------+-----------+-----------------+-------------------+ | 主机用户| |全名|发表评论  | +------+-----------+-----------------+-------------------+ | 比尔| localhost |威廉·施密特|网站开发人员  | +------+-----------+-----------------+-------------------+ 1行集(0.00秒)

要为现有用户设置或更改用户注释或用户属性,可以使用评论属性选项带有改变用户声明。

因为用户注释和用户属性一起存储在一个单独的JSON列,这设置了它们的最大组合大小的上限;看到JSON存储要求,以获取更多资料。

另请参阅信息模式的描述USER_ATTRIBUTES表提供更多信息和示例。

创建用户帐户锁定选项

MySQL支持使用账户锁定而且账号解锁选项,这些选项指定帐户的锁定状态。有关其他讨论,请参见章节6.2.19“帐户锁定”

如果指定了多个帐户锁定选项,则以最后一个锁定选项优先。

创建用户二进制日志

创建用户如果成功则写入二进制日志,如果失败则不写入;在这种情况下,将发生回滚,不进行任何更改。写入二进制日志的语句包括所有已命名用户。如果如果不存在子句,这甚至包括已经存在且未创建的用户。

写入二进制日志的语句为每个用户指定一个身份验证插件,确定如下:

  • 原语句中指定的插件。

  • 否则,默认认证插件。特别是,如果是用户u1已经存在并使用非默认身份验证插件,语句写入二进制日志如果u1不存在,创建用户命名默认的身份验证插件。(如果写入二进制日志的语句必须为用户指定非默认身份验证插件,则将其包含在原始语句中。)

如果服务器在写入二进制日志的语句中为任何不存在的用户添加了默认的身份验证插件,它会向错误日志中写入一个命名这些用户的警告。

如果原始语句指定FAILED_LOGIN_ATTEMPTSPASSWORD_LOCK_TIME选项,写入二进制日志的语句包含该选项。