MySQL高级之密码过期及历史重用次数

本文介绍了MySQL中创建用户时的密码策略选项,包括密码过期和历史限制,并通过实例展示了如何新建用户并设置密码历史。当密码过期后,用户必须更改密码才能继续操作,但在尝试重置为先前的密码时会受到策略限制,以确保密码安全性。
摘要由CSDN通过智能技术生成
1.查询create user 语法
mysql> \h create user;
新增password_option选项
password_option: {
    PASSWORD EXPIRE           #设置密码过期,用户在下次登录时密码设置一个新的密码
  | PASSWORD EXPIRE DEFAULT   #设置账号使用全局配置的过期策略  default_password_lifetime 
  | PASSWORD EXPIRE NEVER     #密码永不过期
  | PASSWORD EXPIRE INTERVAL N DAY #密码在N天后过期
  | PASSWORD HISTORY DEFAULT  #设置账号使用全局配置的密码历史策略 password_history
  | PASSWORD HISTORY N        #设置禁止重用最新N次的密码
  | PASSWORD REUSE INTERVAL DEFAULT #基于时间控制密码是否可以重用,default表示使用全避默认值password-reuse-interval
  | PASSWORD REUSE INTERVAL N DAY #基于时间控制密码是否可以重用,禁止重用N天前的密码
}

2.新建用户
create user test@'localhost' identified by '123456' PASSWORD history 1;
新建用户test@'localhost',并且设置密码历史策略为1,也就是禁止前一次的密码。
select * from mysql.user where user='test'\G
查看user表中的记录,主要看password_reuse_history列的值

3.在另一个session中登录用户,无授权,所以看不到任何库表

4.在session1中设置用户过期
alter user test@'localhost' password expire;

5.在session2中再次登录
[root@node-5 ~]# mysql -utest -p 
Enter password: 
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> 
提示密码过期,重新设置密码
mysql> alter user user() identified by '123456';
ERROR 3638 (HY000): Cannot use these credentials for 'test@localhost' because they contradict the password history policy
修改为原密码,报错
mysql> alter user user() identified by '654321';
修改成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值