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;

posted @   追梦nan  阅读(224)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
MySQL密码强度审计插件:validate_passwordmysql参数之max_connect_errorsdefault_password_lifetime
点击右上角即可分享
微信分享提示