racle11g,靜默安裝後用戶的密碼有效期默認設置爲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安裝的時候就去掉密碼有效期的限制。