日期:2014-05-16 浏览次数:20548 次
今天,在登录tomcat前台界面时发现不能登录,查看log后发现原来是ORA-28001: the password has expired的错误,这个错误是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。
可通过如下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;