关于java连数据库ora-28001

公司有一系统,struts2+spring+ibatis的,今天,突然报错说数据库密码过期
然后我就重置了下密码
并且改了密码过期时间
但是,系统一直还是抱这个错ora-28001
而且,只有在用户登录这个功能的时候报这个错,其余的时候,都能够正常查询出来
这是哪方面原因?

第1个回答  2015-06-01
在登录tomcat前台界面时发现不能登录,查看log后发现原来是ORA-28001: the password has expired的错误,这个错误是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。

推荐阅读:

ORA-01172、ORA-01151错误处理 http://www.linuxidc.com/Linux/2013-06/86529.htm

ORA-00600 [2662]错误解决 http://www.linuxidc.com/Linux/2013-06/86528.htm

ORA-01078 和 LRM-00109 报错解决方法 http://www.linuxidc.com/Linux/2012-07/66044.htm

ORA-00471 处理方法笔记 http://www.linuxidc.com/Linux/2013-09/90017.htm

ORA-00314,redolog 损坏,或丢失处理方法 http://www.linuxidc.com/Linux/2013-09/90646.htm

ORA-00257 归档日志过大导致无法存储的解决办法 http://www.linuxidc.com/Linux/2013-09/90594.htm

======================分割线======================

可通过如下SQL语句

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

查询密码的有效期设置,LIMIT字段是密码有效天数。

在密码将要过期或已经过期时可通过如下语句进行修改密码,密码修改后该用户可正常连接数据库。

ALTER USER 用户名 IDENTIFIED BY 密码;

如果想去除180天的密码生存周期的限制可通过如下SQL语句将其关闭

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ; ----(一般不推荐)

然后,进sys账号,将该账号解锁:

alter user 用户名 account unlock;

结果还没过多久,又提示ORA-28000 the account is locked,一直解锁,但每次都是没几秒就立刻锁住了。查了之后才发现是 FAILED_LOGIN_ATTEMPTS 参数在作怪。

解决办法:

alter profile default limit failed_login_attempts 次数或unlimited;追问

这个试过了,没用

追答

不至于吧 这个的也没用啊

追问

我的问题是,在同一个系统中,有的功能调用数据库,可以正常使用,有的功能调用,就报这个错

相似回答
大家正在搜