ToB企服应用市场:ToB评测及商务社交产业平台

标题: MySQL 8.0 双密码机制:实现数据库层面定期密码修改的无缝切换 [打印本页]

作者: 忿忿的泥巴坨    时间: 2024-12-9 02:26
标题: MySQL 8.0 双密码机制:实现数据库层面定期密码修改的无缝切换
在数据库管理中,定期修改密码是保障安全的重要步伐,但如何在不影响现有连接的情况下实现无缝切换是一个关键标题。MySQL 8.0 的双密码机制为此提供了抱负的解决方案。
双密码机制简介

从 MySQL 8.0.14 开始,用户帐户答应拥有双重密码,即主密码和辅助密码。这种双密码功能在多种复杂场景中具有显著上风,特别是当系统存在大量 MySQL 服务器(大概涉及复制)、多个应用步伐连接差异 MySQL 服务器且需要定期更改根据的情况。
双密码机制的工作原理

1. 添加新密码与保存旧密码

当需要更改密码时,可使用以下语句添加新密码并保存当前密码作为辅助密码:
  1. ALTER USER 'root'@'%' IDENTIFIED BY '123123' RETAIN CURRENT PASSWORD;
复制代码
此操纵将新指定的密码(‘123123’)设为主密码,同时保存当前密码(123456)作为辅助密码。这样,服务器能够辨认主密码和辅助密码,而应用步伐仍可使用原密码(现为辅助密码)继续连接服务器。

进行测试:

在这里大家可以看到两个密码都可以正常登录。
2. 废弃旧密码

当新密码在系统中流传且应用步伐完成更新后,可废弃辅助密码:
  1. ALTER USER 'root'@'%' DISCARD OLD PASSWORD;
复制代码
此时,账户仅保存主密码,客户端只能通过主密码连接服务器,完成密码更新。

进行测试:

在这里我们可以看到新密码正常登录,旧密码登录失败。
双密码机制在复杂场景中的上风

1. 避免停机时间

在传统的单密码模式下,当一个系统有大量服务器和应用步伐时,更改密码需要密切和谐服务器密码更新和应用步伐使用新密码的时间,这大概导致服务器或应用步伐出现停机情况。而双密码机制答应分阶段进行凭证更改,无需停机。
比方,在有多个 MySQL 服务器(包罗副本)且多个应用步伐连接的系统中,对于名为 ‘ceshi’@‘%’ 的账户,从密码 ‘123456’ 更改为 ‘123123’ 的过程如下:

  1. ALTER USER 'ceshi'@'%' IDENTIFIED BY '123123' RETAIN CURRENT PASSWORD;
复制代码

进行测试:


  1. ALTER USER 'ceshi'@'%'  DISCARD OLD PASSWORD;
复制代码

2. 灵活的密码管理


双密码管理的权限要求

修改辅助密码相关的语句需要特定权限。若要对本身的账户使用 RETAIN CURRENT PASSWORD 或 DISCARD OLD PASSWORD 子句进行 ALTER USER 和 SET PASSWORD 操纵,需要 APPLICATION_PASSWORD_ADMIN 权限。大多数用户只需要操纵本身的一个密码,但如果要答应某个账户利用全部账户的辅助密码,则应授予该账户 CREATE USER 权限,而不是 APPLICATION_PASSWORD_ADMIN 权限。
通过合理利用 MySQL 8.0 的双密码机制及其相关特性,可以在定期修改密码时,轻松实现无缝切换,同时保障系统的持续可用性和安全性。
总结

虽然MySQL8双策略可以实现数据库层面的无缝切换,但是对于某些特定的应用来说,修改数据库的密码后,他们还得重新去打包修改新密码,对业务也是有一定影响的。
欢迎关注公众号《小周的数据库进阶之路》,更多出色知识和干货尽在此中。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4