mysql5.7.39
目录
写在最前面
1、密码复杂度策略
Sql设置
文件配置
2、登陆失败处理策略
Sql设置
文件配置
3、日志审计
Sql设置
4、加密连接
Sql设置
文件配置
写在最前面
#查询安装的插件(默认插件在mysql安装目录\lib\plugin中)
SELECT * from mysql.plugin;
注:sql设置后,重启mysql服务会导致设置失效,建议更改my.ini配置文件(默认位置:\Data\my.ini)
1、密码复杂度策略
#查询密码策略
show variables like 'validate%';
属性 | 默认值 | 描述 |
validate_password_check_user_name | OFF | 设置为ON时允许将密码设置为用户名 |
validate_password_dictionary_file | 检查密码的字典文件路径,默认空 | |
validate_password_length | 8 | 密码的最小长度 |
validate_password_mixed_case_count | 1 | 密码至少要包含的小写字母个数和大写字母个数 |
validate_password_number_count | 1 | 密码至少要包含的数字个数 |
validate_password_policy | MEDIUM | 密码强度检查等级 0/LOW:只检查长度 1/MEDIUM:检查长度、数字、大小写、特殊字符 2/STRONG:检查长度、数字、带小学、特殊字符、字典文件 |
validate_password_special_char_count | 1 | 密码至少要包含的特殊字符个数 |
Sql设置
#安装插件
INSTALL PLUGIN validate_password SONAME 'validate_password.dll';
#设置密码长度
set global validate_password_length=8;
#设置密码复杂度策略
set global validate_password_policy = 1;
#设置密码过期时间为90天
SET GLOBAL default_password_lifetime = 90;
使用navicat新增用户时可以直接选择密码过期策略
文件配置
#先在sql里安装dll插件
#在[mysqld]下增加
validate_password_policy=1
validate_password_length=8
default_password_lifetime=90
2、登陆失败处理策略
#查询配置策略
show VARIABLES like '%connection_control%';
属性 | 默认值 | 描述 |
connection_control_failed_connections_threshold | 3 | 登录失败次数 |
connection_control_max_connection_delay | 2147483647 | 毫秒,最大封锁时间 |
connection_control_min_connection_delay | 1000 | 毫秒,最小封锁时间,默认1000毫秒=1秒 |
Sql设置
#安装插件
install plugin CONNECTION_CONTROL soname 'connection_control.dll';
#安装插件
install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.dll';
#登陆失败封锁30分钟
set global connection_control_min_connection_delay=1800000;
文件配置
#先在sql里安装dll插件
#在[mysqld]下增加
connection_control_min_connection_delay=1800000
3、日志审计
Sql设置
#查询日志,包含各种日志相关配置
show variables like '%log%' ;
#开启全部日志,会导致日志量非常大
set global general_log=on;
mysql社区版默认不包含日志审计功能,可以考虑MariaDB的server_audit插件
我这边安装server_audit.dll失败了,后续解决问题再做补充(5.7.34版本后无法安装server_audit.dll)
4、加密连接
Sql设置
#查看是否开启
show variables like 'require_secure_transport%';
#设置启动
set global require_secure_transport=ON;
文件配置
#在[mysqld]下增加
require_secure_transport=ON
启动后navicat连接必须使用SSL,可以考虑增加CA证书增加安全性
mysql5.7.39
目录
写在最前面
1、密码复杂度策略
Sql设置
文件配置
2、登陆失败处理策略
Sql设置
文件配置
3、日志审计
Sql设置
4、加密连接
Sql设置
文件配置
写在最前面
#查询安装的插件(默认插件在mysql安装目录\lib\plugin中)
SELECT * from mysql.plugin;
注:sql设置后,重启mysql服务会导致设置失效,建议更改my.ini配置文件(默认位置:\Data\my.ini)
1、密码复杂度策略
#查询密码策略
show variables like 'validate%';
属性 | 默认值 | 描述 |
validate_password_check_user_name | OFF | 设置为ON时允许将密码设置为用户名 |
validate_password_dictionary_file | 检查密码的字典文件路径,默认空 | |
validate_password_length | 8 | 密码的最小长度 |
validate_password_mixed_case_count | 1 | 密码至少要包含的小写字母个数和大写字母个数 |
validate_password_number_count | 1 | 密码至少要包含的数字个数 |
validate_password_policy | MEDIUM | 密码强度检查等级 0/LOW:只检查长度 1/MEDIUM:检查长度、数字、大小写、特殊字符 2/STRONG:检查长度、数字、带小学、特殊字符、字典文件 |
validate_password_special_char_count | 1 | 密码至少要包含的特殊字符个数 |
Sql设置
#安装插件
INSTALL PLUGIN validate_password SONAME 'validate_password.dll';
#设置密码长度
set global validate_password_length=8;
#设置密码复杂度策略
set global validate_password_policy = 1;
#设置密码过期时间为90天
SET GLOBAL default_password_lifetime = 90;
使用navicat新增用户时可以直接选择密码过期策略
文件配置
#先在sql里安装dll插件
#在[mysqld]下增加
validate_password_policy=1
validate_password_length=8
default_password_lifetime=90
2、登陆失败处理策略
#查询配置策略
show VARIABLES like '%connection_control%';
属性 | 默认值 | 描述 |
connection_control_failed_connections_threshold | 3 | 登录失败次数 |
connection_control_max_connection_delay | 2147483647 | 毫秒,最大封锁时间 |
connection_control_min_connection_delay | 1000 | 毫秒,最小封锁时间,默认1000毫秒=1秒 |
Sql设置
#安装插件
install plugin CONNECTION_CONTROL soname 'connection_control.dll';
#安装插件
install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.dll';
#登陆失败封锁30分钟
set global connection_control_min_connection_delay=1800000;
文件配置
#先在sql里安装dll插件
#在[mysqld]下增加
connection_control_min_connection_delay=1800000
3、日志审计
Sql设置
#查询日志,包含各种日志相关配置
show variables like '%log%' ;
#开启全部日志,会导致日志量非常大
set global general_log=on;
mysql社区版默认不包含日志审计功能,可以考虑MariaDB的server_audit插件
我这边安装server_audit.dll失败了,后续解决问题再做补充(5.7.34版本后无法安装server_audit.dll)
4、加密连接
Sql设置
#查看是否开启
show variables like 'require_secure_transport%';
#设置启动
set global require_secure_transport=ON;
文件配置
#在[mysqld]下增加
require_secure_transport=ON
启动后navicat连接必须使用SSL,可以考虑增加CA证书增加安全性