QLException: ORA-28001: the password has expired

调试Web项目的时候出现异常:

java.sql.SQLException: ORA-28001: the password has expired
网上查了一下,是Oracle11g密码过期的原因
连接Oracle,以Oracle用户登陆,输入以下命令(查询密码的有效期设置)

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
 
------------------------------------------------------------
该错误是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个默认的功能很容易被DBA或者是开发人员给疏忽,一旦密码180天未修改过,就会出现这样的问题。

输入命令:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED

这样可以将口令有效期默认值180天修改成了“无限制”。但是出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,建议大家定期修改数据库用户口令。在密码将要过期或已经过期时可通过如下语句进行修改密码,密码修改后该用户可正常连接数据库。

SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'



结果显示为:
PROFILE
------------------------------------------------------------
RESOURCE_NAME
------------------------------------------------------------
RESOURCE_TYPE
----------------
LIMIT
------------------------------------------------------------
 
DEFAULT
PASSWORD_LIFE_TIME
PASSWORD
UNLIMITED
------------------------------------------------------------
进行以上步骤之后需要改变密码,否则还会出现password has expired异常
改变密码的命令

alter user XXXUSER identified by Welcome1;
如果账号被锁住,则需要解锁命令
alter user XXXUSER identified by oracle account unlock;
再次调试,问题解决


原文:https://blog.csdn.net/Android_Robot/article/details/7598345 
 

 

修改密码:

oracle修改用户密码

1、使用oracle用户登录,连接数据库

[oracle@wuzj ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Feb 26 12:06:29 2009

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn /as sysdba
Connected.

//查看用户
SQL>
select username,password from dba_users;

USERNAME         PASSWORD
------------------------------ ------------------------------
USER1          BBE7786A584F9103
MGMT_VIEW         4F538DF5F344F348
SYS          8A8F025737A9097A
SYSTEM          970BAA5B81930A40
DBSNMP          FFF45BB2C0C327EC
SYSMAN          2CA614501F09FCCC
OUTLN          4A3BA55E08595C81
MDSYS          72979A94BAD2AF80
ORDSYS          7EFA02EC7EA6B86F
EXFSYS          66F4EF5650C20355
DMSYS          BFBA5A553FD9E28A

USERNAME         PASSWORD
------------------------------ ------------------------------
WMSYS          7C9BA362F8314299
CTXSYS          71E687F036AD56E5
ANONYMOUS         anonymous
XDB          88D8364765FCE6AF
ORDPLUGINS         88A2B2C183431F00
SI_INFORMTN_SCHEMA        84B8CBCA4D477FA3
OLAPSYS          3FB8EF9DB538647C
SCOTT          F894844C34402B67
TSMSYS          3DF26A8B17D0F29F
BI          FA1D2B85B70213F3
PM          72E382A52E89575A

USERNAME         PASSWORD
------------------------------ ------------------------------
MDDATA          DF02A496267DEE66
IX          2BE6F80744E08FEB
SH          9793B3777CD3BD1A
DIP          CE4A36B8E06CA59C
OE          9C30855E7E0CB02D
HR          6399F3B38EDF3288

28 rows selected.

//修改用户口令 格式 alter user 用户名 identified by 新密码;

SQL> alter user system identified by manager;

User altered.

//再次查看,对比发现密码已经更换

SQL> select username,password from dba_users;

USERNAME         PASSWORD
------------------------------ ------------------------------
USER1          BBE7786A584F9103
MGMT_VIEW         4F538DF5F344F348
SYS          8A8F025737A9097A
SYSTEM          D4DF7931AB130E37
DBSNMP          FFF45BB2C0C327EC
SYSMAN          2CA614501F09FCCC
OUTLN          4A3BA55E08595C81
MDSYS          72979A94BAD2AF80
ORDSYS          7EFA02EC7EA6B86F
EXFSYS          66F4EF5650C20355
DMSYS          BFBA5A553FD9E28A

USERNAME         PASSWORD
------------------------------ ------------------------------
WMSYS          7C9BA362F8314299
CTXSYS          71E687F036AD56E5
ANONYMOUS         anonymous
XDB          88D8364765FCE6AF
ORDPLUGINS         88A2B2C183431F00
SI_INFORMTN_SCHEMA        84B8CBCA4D477FA3
OLAPSYS          3FB8EF9DB538647C
SCOTT          F894844C34402B67
TSMSYS          3DF26A8B17D0F29F
BI          FA1D2B85B70213F3
PM          72E382A52E89575A

USERNAME         PASSWORD
------------------------------ ------------------------------
MDDATA          DF02A496267DEE66
IX          2BE6F80744E08FEB
SH          9793B3777CD3BD1A
DIP          CE4A36B8E06CA59C
OE          9C30855E7E0CB02D
HR          6399F3B38EDF3288

28 rows selected.

SQL>

 //现在就可以用此密码链接进行操作了

SQL> connect system/manager

已连接。

==========================

另一种修改值的办法

SQL> alter user system identified by values '2D594E86F93B17A1';

用户已更改。

//在试试这个密码

SQL> connect system/oracle

已连接。

      //这个密码就不灵了

SQL> connect system/manager

ERROR:

ORA-01017: invalid username/password; logon denied

 

修改密码以后重启Oracle

关闭数据库:shutdown

启动:startup

你可能感兴趣的:(Oracle)