Oracle客户端或者JDBC连接Oracle的时候,提示ORA-28001或者ORA-28002错误
是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。 Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个默认的功能很容易被DBA或者是开发人员给疏忽,一旦密码180天未修改过,就会出现这样的问题。
二、恢复密码的方法cmd命令行输入:
sqlplus / as sysdba修改密码,修改时密码不变,但有效期增加:
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;这种方法生产环境应该不太适用,因为还要重启才生效