上一篇文章我们介绍了如何设置Mysql的密码复杂度,其实除了设置密码复杂度策略外,我们还可以设置密码自动过期,比如说隔 90 天密码会过期必须修改密码后才能继续使用,这样我们的数据库账号就更加安全了。下面来看下怎样设置密码自动过期。

单独设置某个账号密码过期时间

使单个账号密码过期我们可以使用 ALTER USER 语句,也可以更改账号过期时间。# 通过 mysql.user 系统表查看数据库账号状态

mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;

+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |

+------------------+-----------+------------------+-------------------+-----------------------+----------------+| expuser          | %         | N                |              NULL | 2021-01-05 14:30:30   | N              |

| root             | %         | N                |              NULL | 2020-10-30 14:45:43   | N              |

| testuser         | %         | N                |              NULL | 2021-01-04 17:22:37   | N              |

| mysql.infoschema | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| mysql.session    | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| mysql.sys        | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| root             | localhost | N                |              NULL | 2020-10-30 14:38:55   | N              |

+------------------+-----------+------------------+-------------------+-----------------------+----------------+7 rows in set (0.01 sec)

# 使 expuser 账号密码立即过期

mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE;

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;

+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |

+------------------+-----------+------------------+-------------------+-----------------------+----------------+| expuser          | %         | Y                |              NULL | 2021-01-05 14:30:30   | N              |

| root             | %         | N                |              NULL | 2020-10-30 14:45:43   | N              |

| testuser         | %         | N                |              NULL | 2021-01-04 17:22:37   | N              |

| mysql.infoschema | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| mysql.session    | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| mysql.sys        | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| root             | localhost | N                |              NULL | 2020-10-30 14:38:55   | N              |

+------------------+-----------+------------------+-------------------+-----------------------+----------------+7 rows in set (0.00 sec)

# 修改账号密码永不过期

mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE NEVER;

Query OK, 0 rows affected (0.01 sec)

# 单独设置该账号密码90天过期

mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE INTERVAL 90 DAY;

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user;

+------------------+-----------+------------------+-------------------+-----------------------+----------------+| user             | host      | password_expired | password_lifetime | password_last_changed | account_locked |

+------------------+-----------+------------------+-------------------+-----------------------+----------------+| expuser          | %         | N                |                90 | 2021-01-05 14:41:28   | N              |

| root             | %         | N                |              NULL | 2020-10-30 14:45:43   | N              |

| testuser         | %         | N                |              NULL | 2021-01-04 17:22:37   | N              |

| mysql.infoschema | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| mysql.session    | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| mysql.sys        | localhost | N                |              NULL | 2020-10-30 14:37:09   | Y              |

| root             | localhost | N                |              NULL | 2020-10-30 14:38:55   | N              |

+------------------+-----------+------------------+-------------------+-----------------------+----------------+7 rows in set (0.00 sec)

# 让此账号使用默认的密码过期全局策略

mysql> ALTER USER 'expuser'@'%' PASSWORD EXPIRE DEFAULT;

Query OK, 0 rows affected (0.01 sec)

每个账号的相关信息在mysql.user 系统表都有记录,当 password_expired 字段值为 Y 时,代表此密码已过期,使用过期密码仍可以登录,但不能进行任何操作,进行操作会提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 必须更改密码后才能进行正常操作。

对给定过期时间的账号来说,比如说设置 90 天过期,数据库系统会将当前时间与上次修改密码的时间差值作比较,如果距上次修改密码时间超过 90 天,则将此账号密码标记为过期,就必须要更改密码后才能操作。

设置全局过期策略

构建全局密码自动过期策略,我们要使用 default_password_lifetime 系统变量。在 5.7.11 版本之前,默认的 default_password_lifetime 值为 360,之后的版本默认值为 0,表示密码不会过期。此参数的单位是天,比如可以将此参数设置为 90 ,则表示全局密码自动过期策略是 90 天。# 设置全局过期策略 先手动更改再加入配置文件

mysql> SET GLOBAL default_password_lifetime = 90;

Query OK, 0 rows affected (0.01 sec)

mysql> show variables like 'default_password_lifetime';

+---------------------------+-------+| Variable_name             | Value |

+---------------------------+-------+| default_password_lifetime | 90    |

+---------------------------+-------+1 row in set (0.00 sec)

# 写入配置文件使得重启生效

[mysqld]

default_password_lifetime = 90

虽然可以通过将过期的密码设置为当前值来“重置”它,但出于良好的 Policy 考虑,我们最好选择其他密码。

总结:

本篇文章主要介绍了关于数据库密码的安全策略,上一篇是密码复杂度,本篇为密码过期策略,多一份策略多一份安心。要记住:安全无小事。

mysql口令更换周期_MySQL密码过期策略介绍相关推荐

  1. mysql口令更换周期_Linux设置口令复杂度和口令定期更换策略

    Linux 密码复杂度设置pam_pwquality.pam_passwdqc(centos7) 1.Linux对应的密码策略模块有:pam_passwdqc 和 pam_pwquality . 其中 ...

  2. mysql密码过期设置,mysql5.6.X和mysql8.0.X密码过期策略

    mysql密码过期策略设置 关于mysql5.6.X和mysql8.0.X配置密码过期策略的学习心得 一.mysql5.6.X配置密码过期策略 网上说的方式,但这不适用于低于5.7.4版本 二.mys ...

  3. 涉密计算机用户登录密码多久换一次,涉密计算机口令应根据其密级进行设置并定期更换,秘密级计算机口令更换周期不得超过30天,机密级计算机口令更换周期不得超过10天 - 作业在线问答...

    相关题目与解析 处理秘密级信息的计算机系统口令长度不得少于(),口令长度更换周期不得长于();处理机密级信息的 按规定,秘密级计算机身份鉴别口令长度不少于()位,应采取组成复杂.不易猜测的口令,并定期 ...

  4. 涉密计算机默认安全用户名,机密级涉密计算机的系统登录如采用用户名加口令的方式,则系统口令更换周期不得长于 - 作业在线问答...

    相关题目与解析 机密级涉密计算机的系统登录如采用用户名加口令的方式,则系统口令更换周期不得长于______. 机密级涉密计算机的系统登录如采用用户名加口令字的方式,则系统口令字更换周期不得长于7天.( ...

  5. oracle密码过期策略管理

    更多文章请移步:www.yanjun.pro 查看用户密码过期策略 select username,account_status,profile from dba_users; 查看配置文件中,密码有 ...

  6. Oracle密码过期策略

    Oracle用户默认密码有效期为180天,密码过期时的处理方案: 01.查看当前所有open状态的用户 select username,account_status,expiry_date,profi ...

  7. mysql root密码过期了_MYSQL 密码过期解决办法

    mysql5.7 关于密码问题 报错: ERROR 1862 (HY000): Your password has expired. To log in you must change it usin ...

  8. mysql 数据库生命周期_MySQL查询的生命周期

    当你执行一次MySQL查询时,有没有仔细想过,在查询结果返回之前,经过了哪些步骤呢?这些步骤有可能消耗了超出想象的时间和资源.因此,在对MySQL的查询进行优化之前,应该了解一下MySQL查询的生命周 ...

  9. vCenter密码过期策略修改

    背景 vcenter密码提示过期,但是修改密码时,没有发现永久不过期选项: 处理 通过官网查询,可在vc的高级配置里定义,适用于6.5-7.0的vc,如下图所示: 可搜索:VimPasswordExp ...

最新文章

  1. java 常见bug_java常见bug
  2. [python opencv 计算机视觉零基础到实战] 三、numpy与图像编辑
  3. Android Studio打包和引用aar
  4. hdu4418 概率dp+高斯消元(近日吐槽)
  5. 嵌入式电路设计(自己的第一个pcb电路)
  6. 计算机组成实验八,计算机组成原理实验八内存系统实验
  7. char 赋值 加入变量_王牌编程语言Java常量、变量、数据类型详解
  8. Security+ 学习笔记31 云计算参考架构
  9. CAS 配置NLB 负载均衡网络无法连接
  10. VMware Ubuntu虚拟机卡顿慢 解决方法大全
  11. Java操作Excel完成导入导出
  12. python-循环语句while
  13. Date.now()和new.Date().getTime()的区别
  14. 续——老机焕发青春——win8 ramos 的本地安装 (涉及vhd差分盘)
  15. Android的语言设置(二)
  16. PTE学术英语考试受全球广泛认可,2018中国考量快速增长
  17. 服务器系统漏洞与补丁程序,巧打补丁保护服务器安全
  18. 桌面云、云桌面的区别
  19. 文件的上传和下载(一)
  20. Chrome浏览器不好用?因为你没安装扩展插件

热门文章

  1. java代码里出现中文乱码怎么解决
  2. 放肆的使用UIBezierPath和CAShapeLayer画各种图形
  3. summit网页上的smt打不开 提示无法启动应用程序 请与应用程序供应商联系
  4. 全局安装gulp 报错问题解决
  5. 【干货】2021新消费品牌STEP增长方法论:品牌营销与生意增长Playbook.pdf(附下载链接)...
  6. 【报告分享】2021中国智能驾驶核心软件产业研究报告:软件定义,数据驱动.pdf(附下载链接)...
  7. 【报告分享】人才流动与迁徙报告2021:新经济,新选择-脉脉.pdf(附下载链接)...
  8. 【报告分享】迈向万亿市场的直播电商-毕马威+阿里研究院.pdf(附下载链接)...
  9. Ceres Solver安装
  10. Python实战入门到精通第一讲——函数