java.sql.SQLException: ORA-28001: 口令已经失效

时间:2024-03-18 14:30:08

Oracle客户端或者JDBC连接Oracle的时候,提示ORA-28001或者ORA-28002错误

是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个默认的功能很容易被DBA或者是开发人员给疏忽,一旦密码180天未修改过,就会出现这样的问题。

如果想去除180天的密码生存周期的限制可通过如下SQL语句将其关闭

sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改之后不需要重启动数据库,会立即生效。

修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;
已经被提示的帐户必须再改一次密码,举例如下:

sql> alter user 用户名 identified by 密码

java.sql.SQLException: ORA-28001: 口令已经失效