作者:彭德利 | 来源:互联网 | 2023-09-07 12:28
最近一段时间突然收到Nagios上的一条Oracle报警:
CRITICAL - ORA-28002: the password will expire within 7 days
在多方资料查询下得知是Oracle下的默认是使用系统的安全策略,这些安全策略都是写在初始化配置文件profile中,一般都是在运行Oracle的用户的家目录中
[root@localhost sql]
[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的错误提示