错误解决方案: ORA-28001: 密码已过期

背景

一个JAVA程序抛出了一个错误 ” java.sql.SQLException: ORA-28001: 密码已过期 ” 当程序运行时.

此错误是由某个帐户的密码过期引起的. 因此,由于安全原因,oracle系统锁定了该帐户.

验证猜测. 我执行了以下命令

的SQL>选择 * 来自dba_profiles,其中profile ='DEFAULT’ 和resource_name =“ PASSWORD_LIFE_TIME”;
PROFILE RESOURCE_NAME RESOURCE LIMITDEFAULT PASSWORD_LIFE_TIME PASSWORD 180

绝对是密码的限制时间是 180 因此,我决定取消此帐户的时间限制. 但是在执行取消操作之前,我需要弄清楚该程序使用了哪个帐户来连接oracle数据库,因此我检查了jdbc和odm文件.

解决此问题的三种方法

1.解锁账户A

假设帐户是A,密码是 123. 只需执行以下命令.

的SQL> 更改由以下用户标识的用户A 123 帐户解锁;
用户更改.

2.重置账户A的密码

的SQL>更改用户的身份 1234;
的SQL>更改用户的身份 123;

3.最后一种方法是将有效时间修改为无限

完成此操作后,无需重新启动数据库服务;

(1).检查dba_users表的概要文件字段值, 一般来说,该用户的个人资料是 “默认”


选择用户名,来自dba_users的个人资料;

(2).查看个人资料的PASSWORD_LIFE_TIME,例如 “默认”.


选择 * 从dba_profiles的WHERE s.profile ='DEFAULT’ AND resource_name =“ PASSWORD_LIFE_TIME”;

(3).修改值 “PASSWORD_LIFE_TIME” 到无限.

更改个人资料的默认限制PASSWORD_LIFE_TIME UNLIMITED;

没有相关的错误 “ORA-28001: 密码已过期” 我解锁该帐户后. 所以这个问题已经解决了.

发表评论