MySQL 8.0 引入了双密码策略,这是一种增强安全性的机制。双密码策略允许为每个用户设置两个密码:主密码和次级密码。主密码用于日常操作数据库,而次级密码则用于紧急情况下的访问,有效防止了密码泄露和未授权访问。
双密码机制使得大规模数据库密码轮换变得更平滑,而无需任何的停机时间。在 MySQL 8.0.14 版本之前,更换密码通常会遇到服务不可用时间的问题。而从 MySQL 8.0.14 起,开始支持了双密码策略。在密码更换时,可以保留旧密码依旧可用。
在更改密码时,首先通过 `RETAIN CURRENT PASSWORD` 子句设置新的主密码,并保留当前密码作为辅助密码。此时,客户端可以继续使用旧密码(辅助密码)连接数据库,同时新密码(主密码)也已经生效。当新密码已经在所有服务器上同步,且所有应用程序也更新为使用新密码时,可以使用 `DISCARD OLD PASSWORD` 子句来丢弃辅助密码(原密码),使得数据库仅接受主密码(新密码)。
这种机制特别适用于复杂的系统,尤其是涉及大量 MySQL 实例、复制、多个应用程序连接以及频繁的密码更新时,能够保持服务不中断,从而实现更流畅的密码更改流程。
语法
#创建'demo7'@'%'用户设置密码123456
create user 'demo7'@'%' identified by '123456';
#更新'demo7'@'%'的密码为1234567并保留旧密码123456
ALTER USER 'demo7'@'%' IDENTIFIED BY '1234567' RETAIN CURRENT PASSWORD;
#丢弃旧密码
alter user 'demo7'@'%' DISCARD OLD PASSWORD;




注意事项
MySQL 8.0.14 起,开始支持了双密码策略,之前并不支持
8.0.13

8.0.14

1万+

被折叠的 条评论
为什么被折叠?



