详解MySQL数据库之密码策略及用户资源限制
概述
今天主要介绍下MySQL数据库密码策略及用户资源限制 ,下面实验基于mysql5.7来测试。
01
密码策略
在mysql 5.6对密码的强度进行了加强,推出了validate_password 插件。支持密码的强度要求。
1、安装插件
mysql> install plugin validate_password soname 'validate_password.so'; mysql> show plugins;
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%';
说明:
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;
2、max_queries_per_hour
该参数设置一个用户在一小时内可以执行查询的次数(基本包含所有语句)。
3、max_updates_per_hour
该参数设置一个用户在一小时内可以执行修改的次数(仅包含修改数据库或表的语句)。
4、max_connections_per_hour
该参数设置一个用户在一小时内可以连接MySQL的时间。
04
密码过期策略
mysql> show global variables like '%password%';
说明:
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方面的内容,感兴趣的朋友可以关注一下~