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

6.2.16服务器过期密码处理

MySQL提供了密码过期功能,允许数据库管理员要求用户重置密码。密码可以手动过期,也可以根据策略自动过期(参见第6.2.15节,“密码管理”).

改变用户语句启用帐户密码过期。例如:

修改用户myuser @ localhost密码过期

对于使用带有过期密码的帐户的每个连接,服务器要么断开客户机的连接,要么限制客户机为沙盒模式,其中服务器只允许客户端执行重置过期密码所需的操作。服务器采取哪个操作取决于客户端和服务器的设置,这将在后面讨论。

如果服务器断开与客户端的连接,它将返回一个ER_MUST_CHANGE_PASSWORD_LOGIN错误:

$> mysql -u myuser -p Password: ****** ERROR 1862 (HY000):你的密码已经过期。要登录,必须使用支持过期密码的客户端进行更改。

如果服务器将客户端限制为沙箱模式,这些操作在客户端会话中是允许的:

  • 客户端可以用重置帐户密码改变用户设置密码.完成这些操作后,服务器将恢复会话的正常访问,以及使用该帐户的后续连接。

    请注意

    虽然这是可能的重置过期密码通过将其设置为当前值,作为一个好的策略,最好选择一个不同的密码。dba可以通过建立适当的密码重用策略来强制不可重用。看到密码重用策略

  • 在MySQL 8.0.27之前,客户端可以使用声明。从MySQL 8.0.27开始,这是不允许的。

对于会话中不允许的任何操作,服务器将返回ER_MUST_CHANGE_PASSWORD错误:

mysql >使用performance_schema;错误1820 (HY000):在执行此语句之前,必须使用ALTER USER语句重置密码。mysql >选择1;错误1820 (HY000):在执行此语句之前,必须使用ALTER USER语句重置密码。

的交互式调用通常会发生这种情况mysql客户端,因为默认情况下,此类调用被置于沙盒模式。若要恢复正常功能,请选择新密码。

的非交互调用mysql客户端(例如批处理模式),如果密码过期,服务器会正常断开与客户端的连接。允许非交互的mysql保持连接的调用,以便修改密码(使用沙盒模式允许的语句),添加——connect-expired-password可以选择的mysql命令。

如前所述,服务器是断开密码过期的客户机连接,还是将其限制为沙箱模式,这取决于客户机和服务器设置的组合。下面的讨论描述了相关的设置以及它们如何交互。

请注意

本讨论仅适用于密码过期的帐户。如果客户端使用未过期的密码连接,服务器将正常处理客户端。

在客户端,给定的客户端指示它是否可以处理过期密码的沙箱模式。对于使用C客户端库的客户端,有两种方法:

  • 通过MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS旗帜mysql_options ()前连接:

    Bool arg = 1;mysql_options (mysql MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS arg);

    这是在mysql客户端,使MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS如果以交互方式调用或使用——connect-expired-password选择。

  • 通过CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS旗帜mysql_real_connect ()在连接时间:

    MYSQL MYSQL;mysql_init (mysql);如果(!mysql_real_connect(&mysql,主机,用户,密码,数据库,端口,unix_socket, CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS)){…处理错误……}

其他MySQL连接器有自己的约定来表示准备好处理沙箱模式。请参阅您感兴趣的10bet官方网站连接器的文档。

在服务器端,如果客户端表明它可以处理过期的密码,服务器就会将其置于沙盒模式。

如果客户端没有表明它可以处理过期的密码(或使用不能这样表明的旧版本的客户端库),则服务器操作依赖于disconnect_on_expired_password系统变量: