详解MySQL8.0 密码过期策略
MySQL8.0.16开始,可以设置密码的过期策略,今天针对这个小的知识点进行展开。
1、手工设置单个密码过期
MySQL8.0中,我们可以使用alter user这个命令来让密码过期。
首先我们创建账号yeyz,密码是yeyz
[root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 -e "select 1" mysql: [Warning] Using a password on the command line interface can be insecure. +---+ | 1 | +---+ | 1 | +---+
这里我们让它过期:
mysql> alter user yeyz@'127.0.0.1' password expire; Query OK, 0 rows affected (0.01 sec)
再来看连接:
[root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 -e "select 1" mysql: [Warning] Using a password on the command line interface can be insecure. Please use --connect-expired-password option or invoke mysql in interactive mode. -- 提示我们通过--connect-expire-password命令来进行连接,我们加上看看 [root@VM-0-14-centos ~]# /usr/local/mysql-8.0.19-el7-x86_64/bin/mysql -uyeyz -pyeyz -h127.0.0.1 -P4306 --connect-expired-password -e "select 1" mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1820 (HY000) at line 1: You must reset your password using ALTER USER statement before executing this statement. -- 这里提示我们先执行alter user的语法来修改密码,然后再使用密码。
当然,除了手工设置密码过期外,我们还可以设置密码永不过期和指定过期时间:
-- 设置密码永不过期 mysql> create user yeyz1@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz1' password expire never; Query OK, 0 rows affected (0.01 sec) -- 设置密码过期天数为指定天数 mysql> create user yeyz2@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz2' password expire interval 90 day; Query OK, 0 rows affected (0.01 sec)
如果我们想遵循全局密码到期策略,则可以使用defalut关键字:
mysql> create user yeyz3@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz3' password expire default; Query OK, 0 rows affected (0.01 sec)
这种情况下,将遵守参数default_password_lifetime设置的时间。
2、设置全局密码过期时间。
如果我们想让所有的密码都有过期时间,可以通过配置参数default_password_lifetime。它的默认值为0,表示禁用自动密码过期。如果default_password_lifetime的值为正整数N,则表示允许的密码生存期,单位为天,因此必须每N天更改一次密码。
mysql> show variables like '%lifetime%'; +---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | default_password_lifetime | 0 | +---------------------------+-------+ 1 row in set (0.00 sec)
3、设置全局密码可重复使用时间和可重复使用的间隔次数
注意,这里的可重复使用时间和可重复使用的间隔次数和过期时间的概念不一样,过期时间指的是密码到这个时间就过期了,就变成不可用了。而可重复使用指的是到指定时间才可以重复使用历史密码,或者密码修改了指定的次数之后,才可以使用历史密码。
我们可以通过下面的方法来设置单个密码可重复使用时间,或者可重复间隔次数,其中:
过期时间表示多久之后,需要修改密码;
过期次数表示每间隔多少次才可以设置重复密码。
这两个功能分别需要使用参数 password_history 和 password_reuse_interval
我们来测试下password_history这个参数:
mysql> alter user yeyz@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz'; Query OK, 0 rows affected (0.01 sec) mysql> mysql> show variables like '%password_history%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | password_history | 0 | +------------------+-------+ 1 row in set (0.00 sec) mysql> set global password_history=2; Query OK, 0 rows affected (0.00 sec) -- 第一次修改,成功 mysql> alter user yeyz@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz'; Query OK, 0 rows affected (0.01 sec) -- 第二次修改,报错 mysql> alter user yeyz@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz'; ERROR 3638 (HY000): Cannot use these credentials for 'yeyz@127.0.0.1' because they contradict the password history policy mysql>
可以看到,一开始的时候,这个password_history参数设置为0,我们将它改为2,代表每执行2次密码设置动作,才可以重复之前的密码,也就是不允许本次修改的密码和上次密码一致。然后开始修改密码为之前同样的密码'yeyz',第一次修改的时候成功了,第二次设置密码的时候,直接报错了。
这种方式是通过系统变量的方式来设置密码的有效次数的。
4、设置单个密码可重复使用时间和可重复使用的间隔次数
-- 设置密码为每间隔5次才可以重复使用 mysql> create user yeyz3@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz3' password history 5; Query OK, 0 rows affected (0.01 sec) -- 设置密码为每隔5天才可以重复使用 mysql> create user yeyz4@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz4' password reuse interval 5 day; Query OK, 0 rows affected (0.01 sec) -- 设置密码为每隔5天可以重复使用或者每个5次才可以重复使用,取最严格的那个条件 mysql> create user yeyz5@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz5' password reuse interval 5 day password history 5; Query OK, 0 rows affected (0.01 sec) -- 使用默认的全局密码可重复使用策略,也就是password history参数和password reuse interval参数 mysql> create user yeyz6@'127.0.0.1' identified with 'mysql_native_password' by 'yeyz6' password reuse interval default password history default; Query OK, 0 rows affected (0.01 sec)
以上就是详解MySQL8.0 密码过期策略的详细内容,更多关于MySQL8.0密码过期策略的资料请关注猪先飞其它相关文章!
相关文章
- 这篇文章主要介绍了mybatis-plus实体类主键策略有3种(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-27
- 这篇文章主要介绍了MySQL8.0 密码过期策略的相关资料,帮助大家更好的理解和使用MySQL8.0的新功能,感兴趣的朋友可以了解下...2020-11-09
详解如何使用Docker部署Django+MySQL8开发环境
这篇文章主要介绍了详解如何使用Docker部署Django+MySQL8开发环境,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-07-19- 从8.0开始,可通过SET PERSIST命令将全局变量的修改持久化到配置文件中,下面这篇文章主要给大家介绍了关于MySQL8新特性之全局参数持久化的相关资料,需要的朋友可以参考下...2021-10-11
- 这篇文章主要给大家介绍了关于MySQL8忘记密码的快速解决方法,文中通过示例代码以及图片介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-06
- 这篇文章主要介绍了mybatis-plus主键生成策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-08-27
- 单击控制面板→管理工具→本地安全策略后,会进入本地安全策略的主界面。在此可通过菜单栏上的命令设置各种安全策略,并可选择查看方式,导出列表及导入策略等操作...2016-01-27
- win2003服务器安全设置之 IP安全策略,需要的朋友可以参考下...2016-01-27
- 有时候为了安全,很多时候服务器被攻下后,黑客会远程登录桌面,如果我们限制了ip的远程登录限制,这样就更安全了。...2016-01-27
win服务器防止安全策略或防火墙配置错误而导致远程无法连接的bat
这篇文章主要介绍了win服务器防止安全策略或防火墙配置错误而导致远程无法连接的bat,需要的朋友可以参考下...2017-07-06- 这篇文章主要介绍了C#策略模式(Strategy Pattern),以一个简单的实例讲述了C#策略模式的实现方法,包括策略模式的用途以及具体实现方法,需要的朋友可以参考下...2020-06-25
- 在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的。...2021-05-27
本地策略提示不能确定应用到此机器的组策略安全性设置的解决方法
最近进入客户的服务器本地安全策略,进入哪个选项都会提示不能确定应用到此机器的组策略安全性设置。在尝试从本地安全策略数据库(%windir%\security\database\secedit.sdb)中检索这些设置时返回的错误为: 参数不正确。...2016-01-27win2008 R2 WEB 服务器安全设置指南之组策略与用户设置
这篇文章主要介绍了win2008 R2 WEB 服务器安全设置指南之组策略与用户设置,需要的朋友可以参考下...2016-07-04- 这篇文章主要介绍了python实现马丁策略的实例详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-16
- 这篇文章主要介绍了详细讨论JavaScript中的求值策略,对求值策略感兴趣的同学,可以参考下...2021-04-27
- IP安全策略里的设置,可以根据实际情况,增加或删除端口....2016-01-27
win2003 ip安全策略 限制某个IP或IP段访问服务器指定端口图文说明
今天有个同事问服务器只让内部的ip访问,限制外面的人访问,如果是网站不多可以通过iis中的ip地址和域名限制,如果网站较多,可以通过ip安全策略来实现。...2016-01-27- 下面的代码复制一下存成一个批处理文件后双击即可!...2016-01-27
- 这篇文章主要介绍了利用Window自带Ipsec安全策略进行安全加固,需要的朋友可以参考下...2017-07-06