技术分享 | MySQL 用户密码过期那点事

技术分享 | MySQL 用户密码过期那点事,第1张

我们先来重新认识一下 mysql.user 表中关于密码过期的字段,

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

password_last_changed:密码最后一次修改的时间。

password_lifetime:该用户密码的生存时间,默认值为 NULL,除非手动修改此用户密码过期机制,否则都是 NULL。

另外解释一个参数:

default_password_lifetime:从 MySQL 5.7.4 版本开始,此全局变量可以设置一个全局的自动密码过期策略。

1.设置密码永不过期

2.手动设置该用户密码为 30 day(它会自动覆盖密码过期的全局策略)

3.设置密码立马过期

1.设置全局密码过期时间:

2.创建用户:

注:很多人一看这个 password_lifetime 为什么没有变,不应该变成 90 吗,是不是 mysql 的 bug,其实不然。

它的工作方式如下:

有一个全局系统变量 default_password_lifetime,它为使用默认密码生存期的所有帐户指定策略。在系统表中这将存储一个 NULL。NULL 值被用作一个标志,表明所涉及的帐户没有每个用户密码的特殊生存期。通过 ALTER USER password EXPIRE NEVER(将列设置为0)或 ALTER USER password EXPIRE INTERVAL N DAY(将列设置为 N)设置每个用户的特殊密码生存期。

因此,没有设置特定密码生存期的所有用户的所有密码生存期都将跟随全局变量的值。

mysql密码过期怎么解决

1,用mysql命令行登录mysql的root用户

2,重新修改root密码 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass')

mysql 5.7增加了两个字段password_last_changed、password_lifetime来完善安全策略。

上面的方法仅仅治标不治本。

可以设置参数default_password_lifetime来延长使用期限

修改oracle用户密码永不过期:

1、查看用户的proifle是哪个,一般是default:

sql>SELECT username,PROFILE FROM dba_users

2、查看指定概要文件(如default)的密码有效期设置:

sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'

3、将密码有效期由默认的180天修改成“无限制”:

sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED

修改之后不需要重启动数据库,会立即生效。

4、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;

已经被提示的帐户必须再改一次密码,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7326495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存