小编教你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使用原来的密码即可
修改完用户密码之后再次登录就会发现这个提示已经不在了。不过小编再次提醒,这只是一个解决办法,生成数据库最好还是定期修改密码,安全至上啊。