日期:2014-05-16  浏览次数:20491 次

oracle 密码过期的问题:the password has expired

ORA-28001: the password has expired

分类: 为了忘却的纪念 1891人阅读 评论(1) 收藏 举报
?1、Oracle UCM启动的时候,控制台报错。

?? 查看日志,有如下异常:

------

####<2011-12-14 下午02时21分13秒 CST> <Info> <JDBC> <unis-1fb1a542b4> <UCM_server1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1323843673405> <BEA-001156> <Stack trace associated with message 001129 follows:
java.sql.SQLException: ORA-28001: the password has expired

------

?? java.sql.SQLException: ORA-28001: the password has expired。

?? Oracle11g的密码过期。

?? 原因:是由于oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致。


2、解决办法:

以管理员身份登录:
C:\>sqlplus / as sysdba


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


PROFILE
------------------------
RESOURCE_NAME
------------------------
RESOURCE_TYPE
----------------
LIMIT
------------------------

DEFAULT
PASSWORD_LIFE_TIME
PASSWORD
180

------------------------

可以看到,默认的密码有效期是180天。


执行如下操作,修改成无限期的:
SQL> alter profile default? limit password_life_time unlimited;
SQL> commit;


再次执行查看:
SQL> select * from dba_profiles where profile='DEFAULT' and resource_name='PASSW
ORD_LIFE_TIME';

PROFILE
------------------------
RESOURCE_NAME
------------------------
RESOURCE_TYPE
----------------
LIMIT
------------------------

DEFAULT
PASSWORD_LIFE_TIME
PASSWORD
UNLIMITED
------------------------

会看到,LIMIT的取值是“UNLIMITED”。


然后重新设置账号即可。

SQL命令是:
SQL> alter user system? identified by Welcome1;
SQL> alter user UCM_OCS identified by Welcome1;


如果用户账号被锁住,则解锁命令是:

sql> alter user UCM_OCS identified by oracle account unlock;


3、密码重设启用后,UCM正常启动。
?? 需要注意的是,UCM_OCS用户的密码,重设时需要跟原来一样。否则UCM的IDC服务无法启动。

转摘:http://blog.csdn.net/jrq/article/details/7072497