orcale数据库密码已过期(ORA-28001: the password has expired)解决办法

前言:

今天小编刚来公司,别人就告诉我项目起不来了,一开始尝试了几遍就是抛异常,然后就看的服务器日志,日志报了一个错误“ ERROR com.alibaba.druid.pool.DruidDataSource:1890 - create connection error, url: jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:orcl
java.sql.SQLException: ORA-28001: the password has expired

内容:

一、问题以及解决

这句话的意思就是:创建连接错误,orcale密码已过期。

解决办法:由于这是正式环境,不敢随便动,不过后来修改的密码的时候新旧密码一致,竟然也可以修改成功。问题就这样解决了。

二、扩展:

 Oracle提示错误消息 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 密码; 

修改密码后,会发现该账户会被锁定,这时需要通过如下SQL语句进行解锁:

  alter user 用户名 account unlock;

 如果想去除180天的密码生存周期的限制可通过如下SQL语句将其关闭, 如下SQL语句将口令有效期默认值180天修改成了“无限制”。

 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

       

       
 

 

你可能感兴趣的:(数据库设计,orcale)