千家信息网

MySQL如何实现用户密码过期功能

发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,这篇文章主要介绍了MySQL如何实现用户密码过期功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。从MySQL版本5.6.6版本起,添
千家信息网最后更新 2024年10月21日MySQL如何实现用户密码过期功能

这篇文章主要介绍了MySQL如何实现用户密码过期功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

从MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间。

这个特性已经添加到mysql.user数据表,但是它的默认值是"N"。可以使用ALTER USER语句来修改这个值。
例如:
mysql> ALTER USER mdba@'localhost' PASSWORD EXPIRE;
Query OK, 0 rows affected (0.04 sec)


在用户未设置新密码之前不能运行任何查询语句,而且会得到如下错误消息提示:
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.


按照以下操作执行完后此用户的所有操作就又会被允许执行:

mysql> alter user mdba@localhost identified by 'Aisino123!';
Query OK, 0 rows affected (0.03 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)


mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)


在MySQL 5.7.8版开始用户管理方面添加了锁定/解锁用户账户的新特性
例如:

mysql> alter user mdba@localhost account lock;
Query OK, 0 rows affected (0.04 sec)


重新登录发现被拒绝:
[root@localhost ~]# mysql -u mdba -p
Enter password:
ERROR 3118 (HY000): Access denied for user 'mdba'@'localhost'. Account is locked.


解锁后恢复正常:

mysql> alter user mdba@localhost account unlock;
Query OK, 0 rows affected (0.03 sec)


[root@localhost ~]# mysql -u mdba -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 942539
Server version: 5.7.17-debug-log Source distribution


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>


从MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个全局变量default_password_lifetime来设置密码过期的策略,
此全局变量可以设置一个全局的自动密码过期策略。
在MySQL5.7的配置文件中设置一个默认值,这会使得所有MySQL用户的密码过期时间都为90天,MySQL会从启动时开始计算时间。
例如在my.cnf里添加:

[mysqld]
default_password_lifetime=90

这会使得所有MySQL用户的密码过期时间都为90天,MySQL会从启动时开始计算时间。
如果要设置密码永不过期的全局策略,可以设置default_password_lifetime=0,或者在命令行设置:
mysql> SET GLOBAL default_password_lifetime = 0;
Query OK, 0 rows affected (0.00 sec)

感谢你能够认真阅读完这篇文章,希望小编分享的"MySQL如何实现用户密码过期功能"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

用户 密码 时间 全局 篇文章 功能 特性 策略 变量 版本 语句 价值 兴趣 可以通过 同时 命令 数据 数据表 文件 方面 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 梦幻西游服务器转入山东云服务器 软件开发项目安排计划表 监狱网络安全部门职能 新乡市九晟网络技术有限公司 软件开发需求说明书例子 进入网络安全模式密码错误 软件开发公司培训内容有哪些 华为云数据库的开发和测试工作 雅图cad数据库报错 教材订购管理系统数据库 数据库教程美食推荐 华为安全网络安全主管应聘 网络安全三六零不涨 深圳天创软件开发 服务器安全有哪些工作 jsp向数据库插入数据 css网络安全大会 网络安全心得700字 数据库分为那两大类 一个线程有多少个数据库链接 公安网络安全使用谈心谈话 软件开发项目安排计划表 ios淘宝服务器 政务信息网络安全工作 服务器住宿安全吗 数据库dba面试问题 宁夏天天互联网络科技有限公司 网络安全大家谈快板内容 桥东软件开发学习网址哪家好 吃鸡一直显示服务器繁忙是为什么
0