Oracle数据库报错:ORA-28001: 口令已经失效

Oracle数据库报错:ORA-28001: 口令已经失效

一、报错原因阐述

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

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

二、恢复密码的方法

cmd命令行输入:

   sqlplus / as sysdba

进入sqlplus
修改密码,修改时密码不变,但有效期增加:

alter user 用户名 identified by <原来的密码> account unlock; ----不用换新密码

提示:用户名,注意不是数据库名!
注意:oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以上方式进行修改。
修改密码
再次测试登录即可。

三、其他

1、通过如下sql查询所有用户密码有效期配置。

sql>SELECT username,PROFILE FROM dba_users;

上述sql查询结果一般为default

2、使用如下sql可以查询到default的默认值

sql>select *  from dba_profiles where profile = ‘DEFAULT‘  and resource_name = ‘PASSWORD_LIFE_TIME‘

3、将默认的有效期改为无限期:

sql>alter profile default limit password_life_time unlimited;   

这种方法生产环境应该不太适用,因为还要重启才生效

发布了4 篇原创文章 · 获赞 2 · 访问量 805

猜你喜欢

转载自blog.csdn.net/qq_41419769/article/details/103890928