oracle數據庫用戶設置密碼有效期后,如果密碼過期,使用程序調用該用戶時會報錯:ORA-28001:the password has expired
可以將相關用戶所屬profile更改為永不過期,也可以為已過期用戶更改密碼
使用oracle用戶以sysdba身份登錄sqlplus
sqlplus / as sysdba
將用戶user11的密碼修改為NewPasswd
SQL> alter user user11 identified by NewPasswd
使用新密碼登錄oracle以驗證密碼有效性
sqlplus user11/NewPasswd@ora_name
如果用戶登錄時報錯提示ORA-28000:用戶已被鎖,需要回到sysdba身份解鎖用戶
SQL> alter user user11 account unlock;
查詢用戶所屬的profile是哪個
SQL> select username,profile from dba_users;
查詢所有用戶,通過CREATED列的時間與當前時間差,推測出密碼已經過期的用戶
SQL> select * from all_users;
通過LIMIT列查詢各profile當前設置的密碼有效天數
SQL> select * from dba_profiles where resource_name='PASSWORD_LIFE_TIME';
示例,將default的profile密碼有效期修改為180天/永久
SQL> alter profile default limit PASSWORD_LIFE_TIME 180;
SQL> alter profile default limit PASSWORD_LIFE_TIME unlimited;
設置密碼永不過期后,未過期的用戶會立即生效變為永久,但那些已經過期的用戶需要修改一次密碼才可以正常使用
以上內容修改之后,不需要重啟服務,會立即生效