mysql密码强度、过期时间设置

mysql应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,鉴别信息具有复杂度要求并定期更换,对于口令的具体要求如下:

1) 长度不小于 8 位;

2) 由大小写字母、数字和特殊字符组成;

3) 不得与账户名相同;

4) 不得明文存储;

5) 至少每半年更换一次;

不影响已有账号

1.检查密码验证插件

SHOW VARIABLES LIKE 'validate_password%';

如果未启用,可以通过以下命令启用:

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

2.配置密码策略

你可以设置 MySQL 密码验证插件的策略以满足你的具体需求:

SET GLOBAL validate_password_length = 8; -- 设置密码最小长度为8位
SET GLOBAL validate_password_policy = STRONG; -- 强制要求密码包含大小写字母、数字和特殊字符

STRONG 策略会检查密码长度和字符组合,确保复杂度。

3. 防止密码与账户名相同

MySQL 默认不允许密码和账户名相同,因此无需额外配置。如果需要确保这点,你可以通过创建用户时手动检查,或者在业务逻辑中加入该检查。

4. 防止明文存储密码

MySQL 默认会对密码进行哈希处理存储,符合要求。你不需要额外配置来防止明文存储。

5. 定期更换密码

MySQL 提供了密码过期机制,可以设置密码的最大使用期限。例如,设置密码每 180 天(大约半年)过期:

SET GLOBAL default_password_lifetime = 180;

这样,每个用户的密码将在 180 天后过期,用户必须在下次登录时更改密码。

6. 持久化设置

为了使这些配置在 MySQL 重启后仍然有效,需要将这些设置写入配置文件 my.cnfmy.ini

[mysqld]
validate_password_length=8
validate_password_policy=STRONG
default_password_lifetime=180

7. 确保不影响已有账号

这些更改只会影响新创建的用户和密码,以及现有用户在更改密码时。现有的用户和他们当前的密码不会受到影响,直到他们的密码过期或他们决定更改密码。

8. 重新启动 MySQL 服务(如果进行了持久化设置)

如果你修改了 MySQL 配置文件,重新启动 MySQL 服务以应用更改:

在 Linux 系统上

sudo systemctl restart mysql

在 Windows 系统上

net stop mysql
net start mysql

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值