1. 程式人生 > 資料庫 >修改oracle密碼有效期限制的兩種思路詳解

修改oracle密碼有效期限制的兩種思路詳解

由於專案的一個bug,導致好幾個現網專案都出現了異常。

bug說明:

oracle11g,靜默安裝後用戶的密碼有效期預設設定為180天,180天后密碼將失效,oracle會提示要修改密碼。

我們專案用的是jdbc連線oracle資料庫,沒法自動處理oracle的這種密碼錯誤提示,直接就連線oracle失敗。

解決思路一:

定期修改資料庫使用者密碼。

解決思路二:

將資料庫密碼設定為永久有效。

思路一具有一定的安全保護作用,但由於業務不支援修改業務部件中的資料庫密碼配置(部件較多,修改過於麻煩,所以乾脆要求不能修改,想想有點矬),於是決定採用思路二。

具體設定命令如下:

假定我們所使用的資料庫使用者為test,密碼為test123456

步驟一:登陸oracle所在的linux伺服器(我們的oracle假設在linux伺服器上),注意要用dba使用者。

步驟二:執行'sqlplus / as sysdba'

步驟三:輸入'alter profile default limit password_life_time unlimited;'並回車

步驟四:輸入'alter user test identified by test123456;'

步驟五:輸入'quit;'退出sqlplus。

步驟六:重啟各個業務部件,一切OK。

需要注意的是,對於第四步,可能會失敗,因為oracle有可能設定了修改密碼時不能與歷史密碼重複的限制,我們可以先執行以下命令去掉限制,然後再執行第四步。雖然對於第四步而言設定前後密碼沒有改變,但卻是必要的嗎,實際測試中發現即使做了第三步處理,如果不執行第四步,jdbc連線資料時依然會連線失敗。

'alter profile default limit password_reuse_max unlimited;'
'alter profile default limit password_reuse_time unlimited;'

在使用profile並想重複利用密碼的時,需要滿足如下條件

1)password_reuse_time和password_reuse_max都為unlimted的時候

可以隨便重置

2)當指定password_reuse_time和password_reuse_max其中一個,另外一個unlimted的時候

密碼永遠無法重置

3)當同時指定password_reuse_time和password_reuse_max的時候

在滿足password_reuse_max的時候,可以重置密碼

在同時滿足password_reuse_time和password_reuse_max的時候,可以重置密碼

在滿足password_reuse_time但從為更換過密碼的時候,也就是password_reuse_max一次也沒用的時候密碼無法重置.

上面這種處理方案是修復現網問題的彌補性措施,根本的要在oralce安裝的時候就去掉密碼有效期的限制。

總結

以上所述是小編給大家介紹的修改oracle密碼有效期限制的操作方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!