调试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