转 错误:ORA-28002/ORA-65162 : the password will expire within 7 days 解决方法

时间:2023-03-08 22:14:24

今天在使用sqlplus时出现

===============================================

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

OR

ORA- 65162 The password has expired

===============================================

提示密码快过期了,由于需要连接的测试数据库,所以决定将密码设置成永不过期。

1.查看用户的profile设置:

(11g)
SELECT username,profile,EXPIRY_DATE FROM dba_users; (12c)
SELECT username,profile,EXPIRY_DATE FROM dba_users; 

一般用户的profile设置都为DEFAULT。

2.查看系统profiles中PASSWORD_LIFE_TIME设置。

SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE                      LIMIT

------------------------------ -------------------------------- ------------------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD                180dys

==============================================================

3.修改DBA_PROFILES中PASSWORD_LIFE_TIM的设置,改为ULIMITED。

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;  

修改后设置立即生效,不需要重启数据库,此时密码永远不会过期。

4.已经被报告了密码快要过期的账户必须再改一次密码(需要DBA权限)

以system用户为例

sqlplus / as sysdba
alter user system identified by root;

再连接数据再也不会出现密码过期的事情了。

如果是其他用户的话,那么就使用其他用户名。

alter user scott identified by tiger;  

login in pdb

SQL> alter user sys profile app_profile;

login in cdb

alter user system identified by oracle;

select * from dba_profiles where resource_name='PASSWORD_LIFE_TIME';

1    DEFAULT    PASSWORD_LIFE_TIME    PASSWORD    UNLIMITED
2    WKSYS_PROF    PASSWORD_LIFE_TIME    PASSWORD    DEFAULT
3    MONITORING_PROFILE    PASSWORD_LIFE_TIME    PASSWORD    DEFAULT
4    APP_PROFILE    PASSWORD_LIFE_TIME    PASSWORD    DEFAULT

--

解锁用户

alter user scott account unlock

今天在使用sqlplus时出现

===============================================

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

OR

ORA- 65162 The password has expired

===============================================

提示密码快过期了,由于需要连接的测试数据库,所以决定将密码设置成永不过期。

1.查看用户的profile设置:

(11g)
SELECT username,profile,expired_time FROM dba_users; (12c)
SELECT username,profile,EXPIRY_DATE FROM dba_users; 

一般用户的profile设置都为DEFAULT。

2.查看系统profiles中PASSWORD_LIFE_TIME设置。

SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE                      LIMIT

------------------------------ -------------------------------- ------------------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD                180dys

==============================================================

3.修改DBA_PROFILES中PASSWORD_LIFE_TIM的设置,改为ULIMITED。

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;