等保测试问题修复MySQL8.0版本启用component_validate_password组件,设置密码复杂度,以及密码有效期

等保测试,MySQL整改、使用component_validate_password组件设置密码复杂度,以及密码有效期、设置严格登录失败处理功能,并且锁定时间满足十分钟以上,如登录失败6-10次锁定账户10分钟以上。

MySQL8.0版本启用component_validate_password组件,设置密码复杂度,以及密码有效期

设置MySQL密码复杂度,需要使用到component_validate_password组件,默认8.0版本不启用该组件。8.0版本之前需要使用validate_password插件

-- 进入MySQL命令行查看是否已启用validate_password插件
-- 使用组件替换插件
mysql> INSTALL COMPONENT 'file://component_validate_password';
Query OK, 0 rows affected (0.24 sec)

-- 再次查看发现已启用
mysql> show variables like 'validate%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | ON     |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.01 sec)
-- 参数介绍
-- validate_password_check_user_name	是否允许密码包含于用户名相同的部分,默认不允许。
-- validate_password_dictionary_file	密码中不能出现的单词字典文件路径,如果设置了该路径,MySQL将会检查用户密码以确保不能包含字典中的单词
-- validate_password_length				密码长度,默认密码长度最小为8
-- validate_password_mixed_case_count	密码中至少需要包含的大写字母数量,默认值为1
-- validate_password_number_count	    密码中至少需要包含的数字数量,默认值为1
-- validate_password_policy				这个参数指定密码策略的级别,从低到高为(也可用数字0,1,2代替)Low、MEDIUM、STRONG  策略级别越高,要求越严格,默认为MEDIUM
-- validate_password_special_char_count	指定密码中需要包含的特殊字符的数量

-- 如果想要修改上面默认配置,可以使用set global
-- 例如设置密码最小长度为10
mysql> set global validate_password_length = 10;
Query OK, 0 rows affected (0.01 sec)
-- 测试
mysql> create user 'test'@'%' identified by '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

-- 需要注意的是,如果你在启用validate_password插件之前已经创建过MySQL用户,并且密码复杂度不符合validate_password插件默认要求,MySQL不会强制让你修改,只是在你新创建用户时对密码复杂度进行限制

设置MySQL密码90天自动过期

-- 使用sql查询MySQL用户表,包括用户名,用户连接MySQL的主机地址,标记密码是否过期(值为Y或N),密码有效期(单位是天),最近一次修改密码时间,账号是否锁定
select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;
-- 设置密码立即过期
ALTER USER 'test_user'@'%' PASSWORD EXPIRE;
-- 设置密码用不过期
ALTER USER 'test_user'@'%' PASSWORD EXPIRE NEVER;
-- 设置账号密码90天过期
ALTER USER 'test_user'@'%' PASSWORD EXPIRE INTERVAL 90 DAY;
-- 设置全局密码过期策略,设置为0,代表用不过期,设置为90代表默认过期策略为90天
SET GLOBAL default_password_lifetime = 0;

设置连续五次登录失败,账号锁定10分钟

-- 安装插件
install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';
install plugin CONNECTION_CONTROL soname 'connection_control.so';
-- 设置错误登录次数最大为5次
set global connection_control_failed_connections_threshold=5;
-- 锁定时间为10分钟
set global connection_control_min_connection_delay=600000;
-- 查看配置
show variables like '%connection_control%';
  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值