Mysql等保认证
MySQL密码强度审计插件:validate_password
作用:强制要求登入密码符合复杂性规范
mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set (0.00 sec)
#说明插件未启动
开启插件
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';
在配置文件下启动插件(在mysqld标签下)
validate_password=OFF
在配置文件下关闭插件(在mysqld标签下)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF |
| 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)
查看插件库:
SELECT * from mysql.plugin ;
validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。
validate_password_length:密码最小长度。
validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count:密码至少要包含的数字个数。
validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。
validate_password_special_char_count:密码至少要包含的特殊字符数。
其中关于validate_password_policy-密码强度检查等级:
0/LOW:只检查长度。
1/MEDIUM:检查长度、数字、大小写、特殊字符。
2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
举例配置
set global validate_password_mixed_case_count=0;
-- 改为0对就不会强制要求必须有大小写
set global validate_password_length=2;
mysql参数之max_connect_errors
指定允许连接不成功的最大尝试次数。5.7默认是100;如果到达这个数,那么服务器将不再允许新的连接,即便mysql仍正常对外提供服务。所以可以将这个参数设置为几万。
mysql> SHOW VARIABLES LIKE "%max_connect_errors%";
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_connect_errors | 10 |
+--------------------+-------+
1 row in set (0.00 sec
default_password_lifetime
参数定义了一个全局的MySQL密码过期时间,单位为天,也就是每过N天,就需要修改密码,否则会在连接后收到一个密码过期的报错。如果该参数设置为0,即表示密码永不过期。
mysql> show variables like 'default_password_lifetime';
Empty set (0.00 sec)
mysql>
default_password_lifetime:
- 作用范围:Global
- 动态修改:Yes
- 取值范围:0~65535
- 默认值:5.7.10 及之前版本为360,5.7.10 之后版本为0
如果使用一个过期的密码连接MySQL,会收到一个报错,如下:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
除了定义默认的密码过期策略,也可以为指定账号定义自定义过期策略,如下:
设置密码永不过期:
ALTER USER ‘root’@’localhost’ PASSWORD EXPIRE NEVER;
设置密码立即过期:
ALTER USER ‘root’@’localhost’ PASSWORD EXPIRE;
设置密码自定义过期天数:
CREATE USER ‘root’@’localhost’ PASSWORD EXPIRE INTERVAL 90 DAY;
ALTER USER ‘root’@’localhost’ PASSWORD EXPIRE INTERVAL 90 DAY;
热爱技术,享受生活,感谢推荐!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?