出现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;