内容简介:从MySQL 8.0开始,安全策略有了重大加强,采用了新的密码插件,增加历史密码限制、双密码、密码强度约束等新特性。从MySQL 8.0开始,安全策略有了重大加强。对我们影响最直接的是,从MySQL 8.0里将caching_sha2_password作为默认的身份验证插件,而不再使用mysql_native_password插件。这时候如果再用旧版本客户端或协议连接,就会报告下面的错误:
导读
从 MySQL 8.0开始,安全策略有了重大加强,采用了新的密码插件,增加历史密码限制、双密码、密码强度约束等新特性。
从MySQL 8.0开始,安全策略有了重大加强。
对我们影响最直接的是,从MySQL 8.0里将caching_sha2_password作为默认的身份验证插件,而不再使用mysql_native_password插件。这时候如果再用旧版本客户端或协议连接,就会报告下面的错误:
$ mysql -uyejr -p Enter password: ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
临时解决方案是将该账号密码插件改回mysql_native_password即可,或者修改全局参数:
#my.cnf [mysqld] default_authentication_plugin = mysql_native_password
不过,还是强烈建议采用新的插件,因为它更安全,性能也更高。
其他的几个新密码策略主要有:
-
支持密码过期策略,需要周期性修改密码
-
增加历史密码检测机制,防止总是几个密码反复重用
-
需要提供旧密码才能修改新密码,防止被篡改
-
支持双密码机制,可以选择采用主密码还是第二密码连接,安全性更高
-
增加密码强度约束,避免使用弱密码
下面我挑几个重点的来说下吧。
1、设置账号密码过期策略,要求定期修改密码
例如设置规则:密码默认42天过期(在美上市公司要求的SOX 404法案规则)
#my.cnf [mysqld] default_password_lifetime=42
当然了,也可以单独设置某个账户永不过期
[mysql@yejr.me]> ALTER USER yejr PASSWORD EXPIRE NEVER;
当密码过期后,该账户连接登入后,就会提示下面的告警:
[mysql@yejr.me]> \s ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.这时候,可以自己动手修改密码,例如:
[mysql@yejr.me]> alter user yejr@'%' IDENTIFIED WITH caching_sha2_password BY 'abcd';
这时候,为了防止使用弱密码或重用历史密码,就可以设置更严格的密码策略了。
2、设置历史密码检测机制,防止反复重用旧密码
例如设置规则:存储5个历史密码,且在180天内不能重复使用这些旧密码
#my.cnf [mysqld] #存储最近的6次密码 password_history=6 #最近6次密码1年内不得重用 password_reuse_interval=365
这时如果修改密码使用了最近一年内用过的历史密码,则会报告下面的错误:
[mysql@yejr.me]> alter user yejr identified with
caching_sha2_password by 'abcd';
ERROR 3638 (HY000): Cannot use these credentials for 'yejr@%' because they contradict the password history policy
3、启用双密码机制
上面提到,在美上市公司要求每42天修改一次密码,这种情况下,可能我们会非常担心有某些地方忘了修改,从而没有很好的执行这个政策。
有了双密码机制后,就可以放心的修改密码了,因为相当于新旧密码都可以同时使用,那么可以留有一定的缓冲时间进行检查确认了,防止有些地方漏了修改。
可以执行下面这样的命令使用双密码:
[mysql@yejr.me]> alter user yejr@'%' IDENTIFIED WITH caching_sha2_password BY 'new-abc' RETAIN CURRENT PASSWORD;
最后建议大家早日升级到最好用的MySQL 8.0版本,享受新特性,以及更好的性能。
enjoy MySQL 8.0。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- ZStack 3.5.2 正式发布,高可用、三方认证、密码策略优化
- Mysql用户忘记密码及密码过期问题的处理方法
- 解决记不住密码的问题,“密码戒指”会是最佳方案吗?
- 密码学初学者可以理解的密码学库
- 用户密码加密存储十问十答,一文说透密码安全
- 密码学幼稚园 | 密码朋克的社会实验(二)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
编写高质量代码:改善Python程序的91个建议
张颖、赖勇浩 / 机械工业出版社 / 2014-6 / 59.00元
在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为......一起来看看 《编写高质量代码:改善Python程序的91个建议》 这本书的介绍吧!