详解MySQL数据库之密码策略及用户资源限制

概述

今天主要介绍下MySQL数据库密码策略及用户资源限制 ,下面实验基于mysql5.7来测试。


01

密码策略

在mysql 5.6对密码的强度进行了加强,推出了validate_password 插件。支持密码的强度要求。

1、安装插件

mysql> install plugin validate_password soname 'validate_password.so';
mysql> show plugins;

详解MySQL数据库之密码策略及用户资源限制

详解MySQL数据库之密码策略及用户资源限制

2、添加配置

# cat /etc/my.cnf
[mysqld]
plugin-load=validate_password.so
validate_password_policy=2
validate-password=FORCE_PLUS_PERMANENT

3、检测配置

mysql> SHOW VARIABLES LIKE 'validate_password%';

02

策略详解

mysql> SHOW VARIABLES LIKE 'validate_password%';

详解MySQL数据库之密码策略及用户资源限制

说明:

validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT: 决定是否使用该插件(及强制/永久强制使用)。

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:密码至少要包含的特殊字符数。


03

用户资源限制

1、max_user_connections

该参数作用是设置所有用户在同一时间连接MySQL实例的最大连接数限制。但这个参数无法对每个用户区别对待。

mysql> show global variables like '%max_user_connect%';
mysql> set global max_user_connections=600;

详解MySQL数据库之密码策略及用户资源限制

2、max_queries_per_hour

该参数设置一个用户在一小时内可以执行查询的次数(基本包含所有语句)。

3、max_updates_per_hour

该参数设置一个用户在一小时内可以执行修改的次数(仅包含修改数据库或表的语句)。

4、max_connections_per_hour

该参数设置一个用户在一小时内可以连接MySQL的时间。


04

密码过期策略

mysql> show global variables like '%password%';

详解MySQL数据库之密码策略及用户资源限制

说明:

1)default_password_lifetime

设置所有用户密码过期时间,0为永不过期;

若为单独用户设置了密码过期策略,则会覆盖该参数;

alter user test3@'localhost' password expire interval 90 day;
alter user test3@'localhost' password expire never; (永不过期)
alter user test3@'localhost' password expire default; (默认过期策略)

2)手动强制过期

alter user test3@'localhost' password expire;

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

详解MySQL数据库之密码策略及用户资源限制

相关推荐