连接oracle时报错:ORA-28001: the password has expired

时间:2023-03-10 01:38:55
连接oracle时报错:ORA-28001: the password has expired

调试Web项目的时候出现异常:

  1. java.sql.SQLException: ORA-28001: the password has expired

网上查了一下,是Oracle11g密码过期的原因

连接Oracle,以Oracle用户登陆,输入以下命令

  1. select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

结果显示:

  1. PROFILE
  2. ------------------------------------------------------------
  3. RESOURCE_NAME
  4. ------------------------------------------------------------
  5. RESOURCE_TYPE
  6. ----------------
  7. LIMIT
  8. ------------------------------------------------------------
  9. DEFAULT
  10. PASSWORD_LIFE_TIME
  11. PASSWORD
  12. 180
  13. ------------------------------------------------------------

结果显示密码有效期是180天

输入命令:

  1. alter profile default  limit password_life_time unlimited;
  2. commit;

再次执行:

  1. select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

结果显示为:

  1. PROFILE
  2. ------------------------------------------------------------
  3. RESOURCE_NAME
  4. ------------------------------------------------------------
  5. RESOURCE_TYPE
  6. ----------------
  7. LIMIT
  8. ------------------------------------------------------------
  9. DEFAULT
  10. PASSWORD_LIFE_TIME
  11. PASSWORD
  12. UNLIMITED
  13. ------------------------------------------------------------

进行以上步骤之后需要改变密码,否则还会出现password has expired异常

改变密码的命令

  1. alter user XXXUSER identified by Welcome1;

如果账号被锁住,则需要解锁命令

    1. alter user XXXUSER identified by oracle account unlock;