暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于Oracle数据库用户密码过期的预防

SQL数据库运维 2022-12-27
1386

点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!

适用范围:各业务平台Oracle Database 11g 版本数据库

数据库软件:Oracle

密码已过期时,sqlplus连接数据库提示:

ERROR:ORA-28001:the password has expired

一、故障原因:

Oracle Database 11g 版本的Oracle数据库有一项默认配置,“PASSWORD_LIFE_TIME=180天”,密码过期时间为180天如default),因此会出现用户密码过期的情况,会造成用户无法登陆Oracle数据库。

二、故障解决分析:

查询默认的密码保存时间:通过sysdba身份可以登录Oracle数据库,可以查看自己的Oracle数据库版本和数据库默认密码保质期的配置:LIMIT(180):保存时长为180天
    SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

    使用SQL语句查找密码过期用户所属的PROFILE 一般是DEFAULT

      SELECT username,PROFILE FROM dba_users;

      如果自己不确定密码过期的用户,可以通过查询所有用户,并结合用户的创建时间和当前时间的时间差,大致推测出密码过期的用户,比如我所使用的以下用户目前密码均已过期:

        select * from all_users;

        三、设置密码过期时间长短,解决密码过期问题

        1、不限期(无密码过期时间,长期有效)

          ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

          2、若有定期更换密码的需求,则可以设置为每个密码更换周期所需的天数(如:60:,表示每过60天就需要重置一次密码)

            ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 60;

            注意:修改为不限期:UNLIMITED,这样以后就不会再出现这个密码过期的问题了,但是如何进行设置,此处需结合每个项目的需求,有些公司是建议定期更换密码的,因此不会设置为UNLIMITED;在企业生产环境中一般只会使用数据库系统管理员登录,然后更新密码,不会去将用户过期时间修改为永不过期。

            四、将密码过期用户的密码更新,SQL如下:

              alter user 密码已过期的USERNAME identified by 新密码;

              以上配置修改及密码重置均不需要重新启动数据库,修改完成,会立即生效即可正常访问数据库!

              点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。


              动动小手点击加关注呦☟☟☟

              文章转载自SQL数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论