出现 ORA-28002 原因一般有两种可能:
一、由于oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致。
二、由于oracle11g中默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此问题。
注意:
先将过期的用户设置密码解锁否则要重启数据库!!!!!!!!!!
1、查询 用户的proifle是哪个:
SELECT username,PROFILE FROM dba_users;
2、查询 proifle 的 resource_name 中 PASSWORD_LIFE_TIME(时效) 和 FAILED_LOGIN_ATTEMPTS(登陆失败)的 limit 状态
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND (resource_name='FAILED_LOGIN_ATTEMPTS' or resource_name='PASSWORD_LIFE_TIME');
如果 limit 都是 UNLIMITED 则设置成功;
如果 limit PASSWORD_LIFE_TIME <> UNLIMITED 或者 FAILED_LOGIN_ATTEMPTS <>UNLIMITED 都会发生 ORA-28002 提示
3、设置永不过期
如 limit PASSWORD_LIFE_TIME <> UNLIMITED
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
如 limit FAILED_LOGIN_ATTEMPTS <> UNLIMITED
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;