MySQL 5.7新特性 —— 密码强度管理、过期策略、用户锁定与解锁

22 篇文章 0 订阅
20 篇文章 1 订阅

一、 密码强度管理

在5.7版本中,如果用户密码过于简单,可能会收到以下报错:

GRANT REPLICATION CLIENT ON *.*TO 'username'@'%' IDENTIFIED BY ‘xxxxxxxx’;
ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements

这个报错与validate_password_policy参数的值有关。默认是1  :符合长度,且必须含有数字、大小写字母,特殊字符。

 

取值

 

含义

 

0 or LOW

 

Length

 

1 or MEDIUM

 

Length; numeric, lowercase/uppercase, and special characters

 

2 or STRONG

 

Length; numeric, lowercase/uppercase, and special characters; dictionary file

如果不想密码很复杂,可以修改:

set global validate_password_policy=0;
GRANT REPLICATION CLIENT ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'xxxxxxxx';
Query OK, 0 rows affected, 1 warning (0.02sec)

更改密码最小长度为4

set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

查看其他相关参数

SHOW VARIABLES LIKE 'validate_password%';

二、 密码过期策略

1. 5.6.6版本起

添加了password_expired功能,允许设置用户密码过期。

ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE;

这个特性已经添加到mysql.user数据表,它的默认值是”N”,可以使用ALTER USER语句来修改。

一旦某个用户的这个选项设置为”Y”,那么这个用户还是可以登陆到MySQL服务器,但是在用户未设置新密码之前不能运行任何查询语句,否则会得到如下报错:

SHOW DATABASES;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

解除过期状态:用户或管理员重设密码

alter user mdba@localhost identified by 'Aisino123!';
flush privileges;

2. 5.7.4版本起

可以通过全局变量default_password_lifetime来设置全局的密码过期的策略

  • 在5.7.4 ~ 5.7.10版本中,default_password_lifetime默认值是360
  • 在5.7.11以后,mysqldefault_password_lifetime默认值是0

my.cnf配置如下:

[mysqld]
default_password_lifetime=90

在MySQL运行时可以使用超级权限修改此配置:

SET GLOBAL default_password_lifetime = 90;

还可以使用ALTER USER命令为每个用户单独设置特定的值,它会自动覆盖密码过期的全局策略(注意ALTER USER语句INTERVAL的单位是 天)

-- 设置'testuser'@'localhost'用户密码30天过期
ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE INTERVAL 30 DAY;
-- 设置'testuser'@'localhost'用户密码不过期
ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;
-- 设置'testuser'@'localhost'用户使用全局密码过期策略
ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE DEFAULT;

三、 用户锁定与解锁

5.7.8版开始,添加了锁定/解锁用户的新特性

ALTER USER 'furrywall'@'localhost' ACCOUNT LOCK;
ALTER USER 'furrywall'@'localhost' ACCOUNT UNLOCK;
-- 验证
select user,host,account_locked from mysql.user;

参考:

https://blog.csdn.net/sinat_29461437/article/details/78113250
https://www.cnblogs.com/JiangLe/p/7655165.html

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hehuyi_In

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值