Oracle数据库用户密码过期的解决方法

2年前 (2022) 程序员胖胖胖虎阿
181 0 0

Oracle数据库用户密码过期的解决方法

背景:今天在更改数据库数据的时候,程序报错了,如下:

ORA-28001:the password has expired
Oracle数据库用户密码过期的解决方法

问题分析:

很显然,报错原因就是:密码已过期!

所以现在需要做的事情:

1.修改密码的过期时间
2.修改/重置密码

这里分析一下为什么要这样做:

1.修改密码的过期时间:这是因为Oracle Database 11g 版本的Oracle数据库有一项默认配置,就是密码过期时间默认为180天(6个月左右);

通过sysdba身份可以登录Oracle数据库,可以查看自己的Oracle数据库版本和数据库默认密码保质期的配置:LIMIT(180):保存时长为180天

  1. 查询默认的密码保存时间:
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

Oracle数据库用户密码过期的解决方法
修改为不限期:UNLIMITED,这样以后就不会再出现这个密码过期的问题了,此处需结合项目需求,有些公司是建议定期更换密码的,因此不会设置为UNLIMITED;

  1. 修改为不限期,若有定期更换密码的需求,则可以设置为每个密码更换周期所需的天数(如:30:,表示每过30天就需要重置一次密码)
    不限期ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

30天的密码有效期ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 30;

  1. 确定密码过期的用户,如果不确定,可以通过查询所有用户,并结合用户的创建时间和当前时间的时间差,推测出密码过期的用户:
    select * from all_users;
    Oracle数据库用户密码过期的解决方法
  2. 重置密码:
alter user 密码已过期的USERNAME identified by 密码;

重置完即可正常访问数据库,不需要重启数据库!

版权声明:程序员胖胖胖虎阿 发表于 2022年10月12日 上午11:08。
转载请注明:Oracle数据库用户密码过期的解决方法 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...