首页 > 代码库 > 由ORA-28001同一时候带出ORA-28000的解决的方法

由ORA-28001同一时候带出ORA-28000的解决的方法

今天,在登录tomcat前台界面时发现不能登录,查看log后发现原来是ORA-28001: the password has expired的错误,这个错误是因为Oracle11G的新特性所致, Oracle11G创建用户时缺省password过期限制是180天(即6个月), 假设超过180天用户password未做改动则该用户无法登录。

可通过例如以下SQL语句

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

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

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

ALTER USER username IDENTIFIED BY password; 

 

假设想去除180天的password生存周期的限制可通过例如以下SQL语句将其关闭

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

 

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

alter user username account unlock;

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

alter profile default limit failed_login_attempts 次数或unlimited;