MySQL5.6.6以上的版本推出了validate_password插件,支持密码强度要求。

查看密码策略参数

首先查看当前已经加载的插件,是否已经启用密码验证插件。

show plugins like 'validate_password';

如果没有,先参考下一个步骤,加载完插件再回到这里。

查看所有和密码验证相关的参数:

show variables like 'validate_password%';
  • validate_password_check_user_name:ON、OFF

    检查用户名,设置成ON表示密码可以设置成当前用户名

  • validate_password_dictionary_file

    用于检查密码的字典文件的路径名

  • validate_password_length

    密码的最小长度

  • validate_password_mixed_case_count

    如果密码策略是中等或更强的,要求密码具有的小写和大写字符的最小数量。对于给定的这个值密码必须有那么多小写字符和那么多大写字符。

  • validate_password_number_count

    如果密码策略是中等或更强的,validate_password要求密码具有的数字(数字)字符的最小数量。

  • validate_password_policy:0/LOW、1/MEDIUM、2/STRONG

    validate_password_policy影响validate_password如何使用它的其他策略设置系统变量,除了根据用户名检查密码之外,后者由validate_password_check_user_name独立控制。validate_password_policy值可以使用数值0、1、2或相应的符号值LOW、MEDIUM、STRONG来指定。其中,关于validate_password_policy-密码强度检查等级:0/LOW:只检查长度。1/MEDIUM:检查长度、数字、大小写、特殊字符。2/STRONG:检查长度、数字、大小写、特殊字符字典文件

  • validate_password_special_char_count

    需要包含的特殊字符数量

运行时加载插件

优点是不会中断业务,缺点是插件有被卸载的风险。

对于要加载的插件,必须位于MySQL的插件目录中。可以通过下面的命令查看:

show variables like 'plugin_dir';

然后加载需要的插件,会注册进mysql.plugins表:

INSTALL PLUGIN validate_password SONAME 'validate_password.so';
SET GLOBAL validate_password=ON;

启动时加载插件

可以保证插件不会被卸载,安全性高,但是需要重启服务,可能会中断业务。

[mysqld]
validate_password_policy=2 
plugin-load=validate_password.so
validate-password=FORCE_PLUS_PERMANENT # 阻止插件在运行时被删除
validate-password=ON/OFF/FORCE/FORCE_PLUS_PERMANENT决定是否使用该插件(及强制/永久强制使用)
最后修改:2023 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏