更安全的 MySQL 8.0 之全新密码策略

栏目: 数据库 · 发布时间: 5年前

内容简介:从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。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编写高质量代码:改善Python程序的91个建议

编写高质量代码:改善Python程序的91个建议

张颖、赖勇浩 / 机械工业出版社 / 2014-6 / 59.00元

在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。本书不仅以建议的方式从正反两方面给出了被实践证明为......一起来看看 《编写高质量代码:改善Python程序的91个建议》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具