MySQL双重密码是如何工作的
2022-11-28 17:23 abce 阅读(68) 评论(0) 编辑 收藏 举报假设先创建了一个用户:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | MySQL> create user abce@ '%' identified by 'abce' ; Query OK, 0 rows affected (0.01 sec) MySQL> grant all on abce.* to abce@ '%' ; Query OK, 0 rows affected (0.00 sec) MySQL> select user ,host, plugin, authentication_string, password_last_changed,User_attributes from mysql. user where user = 'abce' \G *************************** 1. row *************************** user : abce host: % plugin: caching_sha2_password authentication_string: $A$005$`+ G4ZSoB@>f%ss AFPNm4zceJJXAQNT6LlpAoQWrqHFqWWcfhN10MpJ0G/6 password_last_changed: 2022-11-28 17:11:02 User_attributes: NULL 1 row in set (0.01 sec) MySQL> |
至此,用户就可以连接到数据库了。
运行一段事件以后,因为安全规定,收到DBA通知要求更改密码。
现在,你可能有两种环境:
1.你有使用双重密码的权限(需要application password admin权限)
2.你没有对应的权限
如果你没有权限,则需要dba执行变更,并将新的密码告诉你。
如果你有对应的权限,你自己就可以执行修改操作。
假设你有权限,你只需要执行:
1 2 3 4 | MySQL> ALTER USER abce@ '%' IDENTIFIED BY 'abce2' RETAIN CURRENT PASSWORD ; Query OK, 0 rows affected (0.01 sec) MySQL> |
然后,检查一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | MySQL> select user ,host, plugin, authentication_string, password_last_changed,User_attributes from mysql. user where user = 'abce' order by 1,2\G *************************** 1. row *************************** user : abce host: % plugin: caching_sha2_password authentication_string: $A$005$|F7&oJ uniJ2HdED3s ?dkm6C1d.IuXLfS8Od5LYo/OwRaF4v0jnCr7AyTkjRd8 password_last_changed: 2022-11-28 17:11:51 User_attributes: { "additional_password" : "$A$005$`+\fG4Z\u0013SoB@>f%ss\n\u0010\u0012AFPNm4zceJJXAQNT6LlpAoQWrqHFqWWcfhN10MpJ0G/6" } 1 row in set (0.00 sec) MySQL> |
可以从User_attributes看到,旧的密码已经被移除了。至此,就可以安全地滚动升级密码变更,不会影响应用和用户。
一旦切换完毕,就可以通知dba移除老的密码了,或者:
1 2 3 4 | MySQL> ALTER USER 'abce' @ '%' DISCARD OLD PASSWORD ; Query OK, 0 rows affected (0.01 sec) MySQL> |
然后,再次检查一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | MySQL> select user ,host, plugin, authentication_string, password_last_changed,User_attributes from mysql. user where user = 'abce' order by 1,2\G *************************** 1. row *************************** user : abce host: % plugin: caching_sha2_password authentication_string: $A$005$|F7&oJ uniJ2HdED3s ?dkm6C1d.IuXLfS8Od5LYo/OwRaF4v0jnCr7AyTkjRd8 password_last_changed: 2022-11-28 17:11:51 User_attributes: NULL 1 row in set (0.00 sec) MySQL> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2019-11-28 etcd启动报错:couldn't find local name "default" in the initial cluster configuration
2017-11-28 Keepalived源码安装