1.mysql设置密码复杂度

等保三级中要求设置密码负责度策略,密码最小长度设置为8位,采用数字、字母、特殊符号等组合的方式。

1.1 安装插件:

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

1.2 修改/etc/my.cnf,增加以下配置,

[mysqld]

plugin-load-add=validate_password.so

validate_password = on

validate_password_policy = 1

validate_password_length=8

1.3 重启数据库生效:

各项解释如下:

plugin-load-add=validate_password.so

这一行的意思是数据库重启的时候自动加载密码复杂度插件,不配置的话,一般没问题,但遇到数据库迁移的话,可能会启动数据库失败,为保险起见,还是加上这一行。

validate_password = on

开启密码复杂度验证插件

validate_password_policy = 1

密码负责度策略,这里设置为1,中复杂度。

validate_password_policy类型如下,有三个可选项

validate_password_length=8

设置密码的最小长度

验证:使用弱口令进行密码验证

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

结果如下:

  1. mysql设置用户密码错误次数达到5次后锁定10分钟

解决方法(通过MySQL插件控制)

  1. 登录数据库,安装插件

(CONNECTION_CONTROL和CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS)

install plugin CONNECTION_CONTROL soname 'connection_control.so';

install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';

2、查看所有已安装的插件

show plugins;

3、按需修改配置文件(/etc/my.cnf)

vim /etc/my.cnf

添加如下两行配置:

connection-control-failed-connections-threshold=5   #登陆失败次数限制

connection-control-min-connection-delay=1800000    #限制重试时间,此处为毫秒,注意按需求换算

重新启动MySQL

4、重新登录数据库,查看配置是否生效

show variables like '%connection_control%';

5、验证

输错5次密码后,会发现第6次登录会卡住,限制登录,时间为设定的限制时间30分钟

3.mysql设置 30分钟无操作断开连接

登录mysql以后执行如下命令即可

SET GLOBAL wait_timeout = 1800;

SET GLOBAL interactive_timeout = 1800;

4.开启通用日志

SET GLOBAL general_log = 'ON';

mysql> SHOW VARIABLES LIKE '%general%';

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

| Variable_name    | Value                       |

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

| general_log      | ON                         |

| general_log_file | /var/lib/mysql/mysql-vm.log |

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

2 rows in set (0.00 sec)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐