在使用Oracle时,可能用了很长一段时间后,会发现以下密码过期提示
UDI-28002: operation generated ORACLE error 28002
ORA-28002: the password will expire within 7 days
1、查看用户profile设置
su - oracle
sqlplus / as sysdba
SQL> select username,profile from dba_users;
通常用户都是DEFAULT
2、查看系统profiles中密码生命周期设置
SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
默认PASSWORD_LIFE_TIME是180天(即6个月),表示我们的用户6个月就需要更新一下
3、设置为永不过期
修改PASSWORD_LIFE_TIME为UNLIMITED,即永不过期
SQL> alter profile default limit password_life_time unlimited;
4、修改密码
设置永不过期后,依旧会提示密码过期,此时需要重新登录账号修改一次密码
sqlplus / as sysdba
SQL> connect test/test
SQL> password
修改后立即生效,不需要重启数据库,此时修改后的用户密码就变成永不过期了。