Oracle 11g报错ORA-28002的用户名密码过期

作者:袖梨 2022-06-29


出现Oracle 11g 用户名密码过期问题,处理方式如下:

1:先登陆控制台进行验证,weblogic自带的JDBC测试,可以验证数据库连通性。同时应用日志应该会出现ORA-28002的密码过期的错误提示。

2:也可以登陆数据库,使用原始用户进行连接尝试conn username/MIMA . 也会出现ORA-28002的密码过期提示。

具体操作如下:

Oracle  11g默认存在密码180天过期的策略,需要如下修改,在一台节点做就行,不用重启,立即生效

如下操作都要使用数据库管理员帐户进行操作。

#1:查询确认策略,如果出现180天字样,表示存在默认配置:(也可以使用dba_users试图查看)

sqlplus / as sysdba

select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

#2:修改配置策略

alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;

修改后执行上述查询操作,验证,结果为UNLIMITED 尽可。

3:重置密码(如果是oracle11g必须要找到原始密码)

alter user cyjygk3 identified by 原始密码; 如果密码中存在特殊字符,需要用""引起来。

修改完成后,进行验证。

如果weblogic配置了数据库重连机制,理论上不需要重启节点即可恢复。如果没有配置重连策略,必须重启服务。


补充另一篇:


密码过期后,业务进程连接数据库异常,必然会影响使用与登录。
 
解放方法:
 
*******************************************************
 
1. 查看用户密码的有效期设置(一般默认的配置文件是DEFAULT)
 
SQL > SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'
 
2. 将密码有效期由默认的180天修改成“无限制”,修改之后不需要重启动数据库,会立即生效
 
SQL > Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
 
3. 帐户再改一次密码
 
SQL > alter user ink identified by <原来的密码> ----不用换新密码
 
4. 使用修改后的用户登录,如果报“ORA-28000:用户已被锁”,解锁
 
SQL > alter user db_user account unlock;
 
SQL > commit;

相关文章

精彩推荐