为了账号安全,请及时绑定邮箱和手机立即绑定

【Oracle数据库】为什么提示用户密码重置?看完你就懂了

标签:
Oracle

前言

  • 今天,有客户私聊说他们的数据库用户密码过期了,有没有办法修改为永不过期?(数据库版本:11204)

答案: 可以,Oracle这么强大,怎么可能会没考虑到这个呢,只需要修改 user profile 即可。

  • 实操之前先来了解下概念:

1 PROFILES是什么?

  • PROFILES 是从 Oracle 8 版本引入,是一组资源限制,用于限制用户可以使用的系统资源。

  • 它允许我们通过为每个数据库用户创建和分配配置文件来调节每个数据库用户使用的资源量。

  • 数据库创建后,系统中存在名为DEFAULT的默认PROFILE,若不做特殊指定,创建用户时用户默认使用的PROFILE就是DEFAULT。

  • 可以用来控制session或sql能使用的CPU、控制用户的密码管理策略等。

https://img1.sycdn.imooc.com//6117da9e0001e65810580256.jpg

2 PASSWORD_LIFE_TIME的作用?

  • Oracle 11204版本的PASSWORD_LIFE_TIME默认值为180天。

  • 12C以后默认值已修改为UNLIMITED。

  • PASSWORD_LIFE_TIME指定同一密码可用于用户身份验证的天数。

  • 如果您还为 PASSWORD_GRACE_TIME 设置了一个值,则如果在宽限期内没有更改密码,则密码将过期,并且拒绝进一步的连接。

  • 如果您没有为 PASSWORD_GRACE_TIME 设置值,其默认值 UNLIMITED 将导致数据库发出警告但让用户无限期地继续连接。

https://img1.sycdn.imooc.com//6117da9e00012be908460668.jpg

解决方案

1 检查用户所属profile

  • 注意:需要有dba权限用户进行查询

sqlplus / as sysdba 
select username,profile from dba_users where username='LUCIFER';

https://img1.sycdn.imooc.com//6117da9e00016ca409150151.jpg

2 检查DEFAULT的密码策略

sqlplus / as sysdba 
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; 
[object Object]

3 修改密码过期天数为无限期

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

https://img1.sycdn.imooc.com//6117dae90001074f10010117.jpg 

至此,密码永不过期设置完毕。建议建库后修改密码策略为无限期。


作者:Lucifer三思而后行
链接:https://juejin.cn/post/6995955206210977800
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
33
获赞与收藏
206

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消