热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracle下ORA-28002错误处理

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

最近一段时间突然收到Nagios上的一条Oracle报警:

CRITICAL - ORA-28002: the password will expire within 7 days

在多方资料查询下得知是Oracle下的默认是使用系统的安全策略,这些安全策略都是写在初始化配置文件profile中,一般都是在运行Oracle的用户的家目录中

[root@localhost sql]# su - oracle
[oracle@localhost ~]$ ls -al
…略…
-rw-r--r--. 1 oracle oinstall   441 12月 23 13:44 .bash_profile
…略…

一般运行Oracle时都是给它分配普通用户权限,所以常规下普通用户的缺省密码时间是180天,到期前7天使用账号连接Oracle时会有ORA-28002的错误提示,所需要做的就是对Oracle的用户重置一次密码即可。操作也很简单:

[oracle@localhost ~]$ sqlplus / as sysdba #使用DBA账户系统身份验证
SQL> SELECT username,profile FROM dba_users; #查看用户的profile设置,一般用户的profile设置都为DEFAULT
SQL> SELECT FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; #查看系统profiles中PASSWORD_LIFE_TIME设置,一般默认创建的用户账户LIMIT字段一般都是‘180days’
 
PROFILE                        RESOURCE_NAME                    RESOURCE
------------------------------ -------------------------------- --------
LIMIT
----------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD
180
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;#把Oracle默认的过期时间设置为永不过期
 
Profile altered.
  
SQL> ALTER USER username IDENTIFIED BY youpassword;#此时再重置一次快要过期的用户密码,用户密码可以和原来的一致,平时用户密码忘记也是通过DBA账户系统身份验证进入Oracle来重置用户密码

此时再用普通用户的用户密码登录Oracle就可以正常的登录,没有ORA-28002的错误提示


推荐阅读
author-avatar
彭德利
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有