Oracle 用户密码过期
version : 11.2.0.2
OS : SUSE Linux Enterprise Server 11 (x86_64)
1.查看用户的profile文件
SQL> SELECT USERNAME,LOCK_DATE,EXPIRY_DATE,ACCOUNT_STATUS,PROFILE FROM DBA_USERS;
USERNAME LOCK_DATE EXPIRY_DATE ACCOUNT_STATUS PROFILE
------------------------------ --------------- --------------- -------------------------------- ------------------------------
WNMSAPSR3 EXPIRED DEFAULT
SYS OPEN DEFAULT
SYSTEM OPEN DEFAULT
2.查看对应的 PROFILE 的密码有效期设置
用户使用的时默认的 profile 名为DEFAULT,默认密码的有效期为180天:
SQL> SELECT * FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD 180
在用户密码过期前几天,该用户在链接数据库时收到:ORA-28002。此时可修改该用户的密码或者将该用户使用的PROFILES 设置为不过期。
3.将密码有效期从默认值的 180 天修改成 UNLIMITED (出于安全性考虑,生产环境不建议设置成 UNLIMITED,此处修改为测试环境,懒得经常改密码了)
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
SQL> SELECT * FROM DBA_PROFILES WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
在修改 PASSWORD_LIFE_TIME 值之前密码已经过期的用户,需要重新修改一次密码后才能使用。
SQL> alter user WNMSAPSR3 identified by wnm123;