Mysql密码安全策略配置
Posted 治恒说说
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql密码安全策略配置相关的知识,希望对你有一定的参考价值。
近些年来,网络安全相应的法律法规在逐步完善,网络安全等级保护制度在《网络安全法》的正式实施后,得到大力推进。很多公司、单位,逐渐认识到网络安全等级保护的重要性,为了落实网络安全等级保护工作,我所在的项目最近也做了一次等保的测评,下面是针对 mysql 数据库相关的一些整改配置。
Tips:示例是以 Mysql 5.7 为例
密码策略
首先登录 Mysql 查看目前数据库的密码策略
show variables like 'validate_password%';
如果出现 Empty set (0.01 sec)
的字样,说明你的 Mysql 还未安装 validate_password
的插件。查看插件列表:
show plugins;
如果没有这一项,说明确实没有安装validate_password
插件。
安装插件
要使服务器可用,插件库文件必须位于 MySQL 插件目录中(由plugin_dir系统变量命名的目录)。如果需要,通过在服务器启动时设置 plugin_dir 的值来配置插件目录位置。
show variables like 'plugin_dir';
插件库的文件名是 validate_password.文件名后缀根据平台的不同而不同(.so 是Unix和类Linux系统,.dll是Windows系统)。要在服务器启动时加载插件,可以在配置文件中使用 plugin-load-add
参数来命名包含它的库文件。修改配置文件my.cnf
vim /etc/my.cnf
[mysqld]
plugin-load-add=validate_password.so
#服务器在启动时加载插件,并防止在服务器运行时删除插件。
validate-password=FORCE_PLUS_PERMANENT
修改 my.cnf 之后,重启服务器以使新设置生效。或者,要在运行时注册插件,可以使用以下命令:
service mysqld restart
#或
install plugin validate_password soname 'validate_password.so';
然后再次查看插件列表,就会出现图一中的那一项 validate_password
配置
再次执行查看密码策略的命令:
show variables like 'validate_password%';
validate_password_check_user_name
:设置为ON的时候表示能将密码设置成当前用户名。 validate_password_dictionary_file
:用于检查密码的字典文件的路径名。 validate_password_length
:所需密码的最小长度。 validate_password_mixed_case_count
:默认值为1,如果密码策略是中等或更强的,限制小写字符和大写字符个数。 validate_password_number_count
:如果密码策略是中等或更强的,要求密码具有数字的个数。 validate_password_policy
:默认值为1, 密码强度等级 [LOW:0| MEDIUM:1 | STRONG:2] validate_password_special_char_count
: 默认值为1,限制特殊字符个数 其中,validate_password_policy 0/LOW:只检查长度。1/MEDIUM:检查长度、数字、大小写、特殊字符。2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
可以使用以下命令修改上述值:
set global validate_password_policy=1;
set global validate_password_length=8;
flush privileges;
也可以在配置文件中直接配置:
vim /etc/my.cnf
[mysqld]
validate_password_policy=1
validate_password_length=8
参考和相关链接
mysql 5.7安装密码校验插件validate_password:https://www.cnblogs.com/alonely/p/10927541.html
MYSQL57密码策略修改:https://www.cnblogs.com/zhi-leaf/p/5994478.html
以上是关于Mysql密码安全策略配置的主要内容,如果未能解决你的问题,请参考以下文章
修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段