ORA-28002: the password will expire within 7 days
ORA-28002: the password will expire within 7 days
异常原因:提示密码将在七天内过期。
解决方法:已经被报告了该异常的账户必须修改一次密码(需要DBA权限),通过 sqlplus / as sysdba
登陆到 Oracle (无需密码),然后执行如下命令更新密码即可:
C:\Users\Mechrevo>sqlplus / as sysdba
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter user username identified by newpassword;
用户已更改。
修改密码过期的默认设置
在Oracle中,每个用户都会对应一种特定类型的profile概要设置,其基本描述了这个用户的一些特征,就比如用户密码的生命周期(这个特征与ORA-28002
异常有关)。
通常数据库用户都会采用default这个默认的profile概要设置,如下所示:
SQL> select t.username, t.profile from dba_users t;
USERNAME PROFILE
------------------------------ ------------------------------
USERNAME_DEV DEFAULT
SYSTEM DEFAULT
SYS DEFAULT
MGMT_VIEW DEFAULT
SYSMAN DEFAULT
DBSNMP MONITORING_PROFILE
SPATIAL_WFS_ADMIN_USR DEFAULT
SPATIAL_CSW_ADMIN_USR DEFAULT
HR DEFAULT
APEX_PUBLIC_USER DEFAULT
OE DEFAULT
查看系统profiles中password_life_time: 密码生命周期,用户密码什么时候到期,单位是天,如下,安装 Oracle 时默认的password_life_time是180天,即6个月,其含义就是,我们的用户密码每6个月就需要更新(注意: 这里的更新不是指密码需要改变,而是指一个更新动作,可以维持密码不变,但必须执行这个更新动作)。
SQL> select s.*
2 from dba_profiles s
3 where s.profile = 'DEFAULT'
4 and s.resource_name = 'PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE
------------------------------ -------------------------------- --------
LIMIT
----------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD
180
修改dba_profiles中password_life_time的设置,改为unlimited。即不限制,这样我们的用户密码就永不过期了。
SQL> alter profile default limit password_life_time unlimited;
配置文件已更改