相信很多人在日常工作中,都会遇到设置用户、密码之类的问题,很多人使用keepass来生成和保存密码;但是,很多人为了易于记忆,会选择相对简答的密码,这样,在安全性方面,会存在非常严重的安全隐患。

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

此插件要求版本:5.6.6 以上版本
安装方式:

1.安装插件:(默认安装了插件后,强度插件就启用了,关闭,需要在配置文件假如相关关闭参数)

mysql>INSTALL PLUGIN validate_password SONAME 'validate_password.so';

2.配置文件添加部分参数:

[mysqld]

plugin-load=validate_password.so

validate_password_policy=2

validate-password=FORCE_PLUS_PERMANENT

3.以上处理后,就可以测试了:

mysql> SET PASSWORD = PASSWORD('abc');

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql> SET PASSWORD = '*0D3CED9BEC10A777AEC23CCC353A8C08A633045E';

Query OK, 0 rows affected (0.01 sec)

4.相关说明:

(1).相关选项:

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

其中,关于validate_password_policy-密码强度检查等级:

0/LOW:只检查长度。

1/MEDIUM:检查长度、数字、大小写、特殊字符。

2/STRONG:检查长度、数字、大小写、特殊字符字典文件。

(2).插件的安装启用:

插件对应的库对象文件需在配置选项plugin_dir指定的目录中。

可使用--plugin-load=validate_password.so,在server启动时载入插件,或者将plugin-load=validate_password.so写入配置文件。

也可以通过如下语句在server运行时载入插件(会注册进mysql.plugins表)

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

(3).为阻止该插件在运行时被删除可在配置文件中添加:

[mysqld]

plugin-load=validate_password.so

validate-password=FORCE_PLUS_PERMANENT

禁用或降低安全级别

关于validate_password_policy-密码强度检查等级:

0/LOW:只检查长度。

1/MEDIUM:检查长度、数字、大小写、特殊字符。

2/STRONG:检查长度、数字、大小写、特殊字符字典文件。

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

    有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为12345678。

    必须修改两个全局参数:

通过命令:

    首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;

Query OK, 0 rows affected (0.00 sec)


这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。

mysql> select @@validate_password_length;

+----------------------------+

| @@validate_password_length |

+----------------------------+

|             8 |

+----------------------------+

1 row in set (0.00 sec)


通过配置文件:

        1 禁用validate-password

        编辑my.cnf配置文件:

        [mysqld]

      validate-password=OFF

        然后重启mysql即可。

        2 降低安全策略级别

        [mysqld]

        validate_password_policy=LOW

        然后重启mysql即可。