小编教你Oracle数据库ORA-28002错误原因及解决办法

近期小编在开发api接口时,调试中接口返回ORA-28002错误,看前缀知道是Oracle返回的错误信息,随查了下Oracle相关文档。在此把解决方案分享给有需要的朋友。在oracle database 11g中,默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致。密码过期后,业务进程连接数据库异常,影响业务使用。数据库密码过期后,业务进程一旦重启会提示连接失败。注:Oracle 11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以下方式进行修改:

1.查看用户的proifle是哪个(一般是default):

SQL> select username,profile from dba_users where username='user_name';

2.查看概要文件密码有效期设置:

SQL> select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

3.如果密码有效期被设置为180天,那么将需要进行如下修改:

SQL> alter profile default limit password_life_time unlimited; 

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

注意:修改后,还没有被提示ORA-28002警告的账户不会再碰到同样的问题,已经被提示的用户仍需要再修改一次密码,方法如下:

SQL> alter user user_name identified by password; --这里的password使用原来的密码即可

修改完用户密码之后再次登录就会发现这个提示已经不在了。不过小编再次提醒,这只是一个解决办法,生成数据库最好还是定期修改密码,安全至上啊。

相关推荐