设置密码(用户]auth_option(替换current_auth_string'][保留当前密码]auth_option: {= 'auth_string' | to random}
的设置密码
语句为MySQL用户帐户分配密码。密码可以在语句中明确指定,也可以由MySQL随机生成。该语句还可能包括指定要替换的帐户当前密码的密码验证子句,以及管理帐户是否有备用密码的子句。'
而且auth_string
''
每一个都表示一个明文(未加密)密码。current_auth_string
'
用于随机密码生成、密码验证和辅助密码的子句只适用于使用身份验证插件的帐户,该插件在MySQL内部存储凭据。对于使用插件对MySQL外部的凭证系统执行身份验证的帐户,密码管理也必须在外部对该系统进行处理。有关内部凭据存储的更多信息,请参见第6.2.15节“密码管理”.
的取代的
子句执行密码验证,MySQL 8.0.13版本可用。如果给定:current_auth_string
'
取代
指定要替换的帐户当前密码,作为明文(未加密)字符串。如果要求更改帐户的密码以指定当前密码,则必须给出该子句,以验证试图进行更改的用户实际上知道当前密码。
如果更改帐户的密码可以但不需要指定当前密码,则该子句是可选的。
如果给出了子句但不匹配当前密码,则语句失败,即使子句是可选的。
取代
只有在修改当前用户的账号密码时才能指定。
有关通过指定当前密码进行密码验证的详细信息,请参见第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
系统模式。为您自己设置密码(对于非匿名帐户为
条款)不需要特殊特权。
修改辅助密码的语句需要以下权限:
的
APPLICATION_PASSWORD_ADMIN
权限使用保留当前的密码
条款设置密码
适用于您自己帐户的对账单。由于大多数用户只需要一个密码,因此需要使用该特权来操作您自己的辅助密码。如果要允许一个帐户操作所有帐户的辅助密码,则应授予它
创建用户
特权,而不是APPLICATION_PASSWORD_ADMIN
.
当read_only
系统变量已启用,设置密码
要求CONNECTION_ADMIN
特权(或已弃用的超级
特权),以及任何其他所需的特权。
有关设置密码和身份验证插件的其他信息,请参见第6.2.14节“分配帐户密码”,第6.2.17节,“可插入认证”.