欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle提示错误28001

程序员文章站 2022-04-06 18:48:13
...

项目场景:

个人项目放在某云服务器上跑:时间太久造成服务器卡顿,尝试重启后出现oracle数据连接不上的问题


问题描述:

服务器重启后oracle提示错误28001:
例如:

2021-01-22 WARN    - not full timeout retry : 1
2021-01-22 ERROR   - create connection error
java.sql.SQLException: ORA-28001: the password has expired

2021-01-22 ERROR   - create connection error
java.sql.SQLException: ORA-28001: the password has expired



原因分析:

oracle用户的default有个180天的密码有效期:
超过180天后 如果服务器不重启,该数据库能正常访问使用,如果超过180天服务器进行了重启等操作,就会出现密码有效期认证,出现了该错误


解决方案:

解决方案来源 https://blog.csdn.net/jojojojo2002/article/details/7916043
此处整理只为bug汇总

1、查看用户帐户所配置的概要文件,如没有指定,则默认为“default”:
SQL> select username,profile from dba_users;

USERNAME PROFILE


SBGL DEFAULT
USERDATA DEFAULT
MGMT_VIEW DEFAULT
SYS DEFAULT
SYSTEM DEFAULT
DBSNMP MONITORING_PROFILE
SYSMAN DEFAULT

2、查看指定概要文件(Default)的密码有效期设置:
SQL> select * from dba_profiles where profile=‘DEFAULT’ and resource_name=‘PASSWORD_LIFE_TIME’ ;

PROFILE RESOURCE_NAME RESOURCE LIMIT


DEFAULT PASSWORD_LIFE_TIME PASSWORD 180

3、将密码有效期由默认的180天修改成“无限制”:
SQL> alter profile default limit PASSWORD_LIFE_TIME UNLIMITED ;
配置文件已更改
语句执行后即时生效。

4、Default概要文件修改后,还没有提示“ORA-28002”警告的帐户不会再碰到同样的提示;已经被提示的帐户必须更改一次密码:
SQL> alter user username identified by password ;
用户已更改。

相关标签: 数据库