Oracle 11g密碼過期問題及解決方案


問題:

在自用的一個系統里,連接的是本地自建的一個數據庫。用sqldeveloper登錄數據庫。提示如下圖:

 

提示:密碼過期

解決方案:

密碼過期一般存在兩種可能:

  1. 由於Oracle中默認在default概要文件中設置了“PASSWORD_LIFE_TIME=180天”所導致。
  2. 由於Oracle中默認在default概要文件中設置了“FAILED_LOGIN_ATTEMPTS=10次”,當輸入密碼錯誤次數達到設置值將導致此問題。

首先用dba數據庫超級管理員登錄該數據庫,然后進行以下操作

 

第一種情況解決方案:

  1. 查看用戶用的哪種profile策略,一般是default:

代碼:

 select username,profile from dba_users

結果:

 

  2.查看指定概要文件(如default)的密碼有效期設置:

代碼:

Select * FROM dba_profiles s Where s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'

結果:

 

 

  3.將密碼有效期由默認的180天修改成“無限制”:

代碼:

 ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED

結果:

 

  4.修改密碼,相當於重置密碼

代碼:

alter user GAEA_WHGT identified by 111111

結果:

 

注意:該處的GAEA_WHGT指數據庫的用戶名,111111指修改后的密碼(改密碼也可以與原先的密碼一樣)

  5.修改成功后即用已修改的用戶名與密碼登錄。測試狀態顯示成功。則說明密碼修改成功。

 

注意:

數據庫密碼有效期也可以不用更改,直接進行第四步修改密碼即可,但這新修改的密碼在180天后還會出現密碼過期的問題。

 

第二種情況解決方案:

1.查看用戶用的哪種profile策略,一般是default:

代碼:

 select username,profile from dba_users

結果:

 

2.查看指定概要文件(如default)的密碼次數設置:

代碼:

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

結果:

 

3.將嘗試登錄失敗次數由默認的10次修改成“無限制”:

代碼:

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

結果:

 

4.修改后,還沒有被提示ORA-28000警告的用戶不會再碰到同樣的提示; 已經被鎖定的帳戶必須解除鎖定,舉例如下:

代碼:

 alter user GAEA_WHGT identified by oracle account unlock

結果:

 

5.修改后default profile應該如下
代碼:

 select * from dba_profiles WHERE dba_profiles.profile='DEFAULT'

結果:

 

6.修改之后不需要重啟動數據庫,會立即生效。 如果出現ORA-28000 the account is locked.錯誤

代碼:

alter user 用戶名 account unlock


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM