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

13.7.1.10 SET PASSWORD语句

设置密码(用户auth_option(替换current_auth_string'][保留当前密码]auth_option: {= 'auth_string' | to random}

设置密码语句为MySQL用户帐户分配密码。密码可以在语句中明确指定,也可以由MySQL随机生成。该语句还可能包括指定要替换的帐户当前密码的密码验证子句,以及管理帐户是否有备用密码的子句。auth_string而且current_auth_string每一个都表示一个明文(未加密)密码。

请注意

而不是使用设置密码指定密码,改变用户是帐户更改(包括分配密码)的首选语句。例如:

改变用户用户被“auth_string”;
请注意

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

取代的current_auth_string子句执行密码验证,MySQL 8.0.13版本可用。如果给定:

  • 取代指定要替换的帐户当前密码,作为明文(未加密)字符串。

  • 如果要求更改帐户的密码以指定当前密码,则必须给出该子句,以验证试图进行更改的用户实际上知道当前密码。

  • 如果更改帐户的密码可以但不需要指定当前密码,则该子句是可选的。

  • 如果给出了子句但不匹配当前密码,则语句失败,即使子句是可选的。

  • 取代只有在修改当前用户的账号密码时才能指定。

有关通过指定当前密码进行密码验证的详细信息,请参见第6.2.15节“密码管理”

保留当前的密码子句实现了双密码功能,从MySQL 8.0.14开始可用。如果给定:

  • 保留当前的密码保留帐户当前密码作为辅助密码,替换任何现有的辅助密码。新密码将成为主密码,但客户端可以使用主密码或从密码使用该帐户连接到服务器。(例外:如果新密码由设置密码语句为空,则副密码也变为空,即使保留当前的密码给出)。

  • 如果您指定保留当前的密码对于主密码为空的帐户,该语句将失败。

  • 如果一个帐户有从密码,而您更改了它的主密码而不指定保留当前的密码,从密码保持不变。

有关使用双重密码的更多信息,请参见第6.2.15节“密码管理”

设置密码允许这些auth_option语法:

  • = 'auth_string

    将给定的文字密码分配给帐户。

  • 随机

    使用MySQL随机生成的密码。该语句还以结果集的形式返回明文密码,以便执行该语句的用户或应用程序可以使用该密码。

    关于随机生成密码的结果集和特征,请参见生成随机密码

    MySQL 8.0.18提供随机密码生成功能。

重要的

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

设置密码可以带或不带子句,显式地命名用户帐户:

  • 与一个用户子句后,该语句将设置指定帐户的密码,该密码必须存在:

    为'jeffrey'设置密码@'localhost' = 'auth_string”;
  • 没有用户子句中,语句设置当前用户的密码:

    设置密码= 'auth_string”;

    任何使用非匿名帐户连接到服务器的客户机都可以更改该帐户的密码。(特别是,您可以更改自己的密码。)要查看服务器对您进行身份验证的是哪个帐户,请调用CURRENT_USER ()功能:

    选择CURRENT_USER ();

如果一个用户子句给出时,帐户名使用中描述的格式第6.2.4节“指定帐户名称”.例如:

为'bob'设置密码@'%.example.org' = 'auth_string”;

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

设置密码将字符串解释为明文字符串,将其传递给与帐户关联的身份验证插件,并将插件返回的结果存储在控件的帐户行中mysql.user系统表。(插件有机会将值哈希为它期望的加密格式。插件可以使用指定的值,在这种情况下不会发生哈希。)

为指定帐户设置密码条款)要求更新特权的mysql系统模式。为您自己设置密码(对于非匿名帐户条款)不需要特殊特权。

修改辅助密码的语句需要以下权限:

read_only系统变量已启用,设置密码要求CONNECTION_ADMIN特权(或已弃用的超级特权),以及任何其他所需的特权。

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