Oracle11G密碼延遲驗證導致的系統HANG住
環境:AIX-Based Systems
Oracle release 11.2.0.3.0
故障現象:
同一個登入賬號只要錯過一次密碼,下面登入(不管密碼是否正確)都會慢 ,如果成功,後續登入如果密碼正確就會快,如此輪詢
問題分析:
又是一個11g新特性導致的問題。
這個新特性很早之前就研究過,也在其他客戶處碰到過類似的問題。從11g開始,如果一個使用者使用不正確的密碼嘗試登入資料庫,那麼隨著登入失敗次數的增加,每次登入驗證前延遲等待的時間也會增加:
SQL> set time on
18:30:54 SQL>
18:30:58 SQL> conn test/test
Connected.
18:31:25 SQL>
18:31:25 SQL> conn test/a
conn test/a
conn test/a
conn test/a
conn test/a
conn test/a
conn test/a
conn test/test
conn test/a
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
18:31:26 SQL> ERROR:
ORA-01017: invalid username/password; logon denied
18:31:26 SQL> ERROR:
ORA-01017: invalid username/password; logon denied
18:31:26 SQL> ERROR:
ORA-01017: invalid username/password; logon denied
18:31:27 SQL> ERROR:
ORA-01017: invalid username/password; logon denied
18:31:29 SQL> ERROR:
ORA-01017: invalid username/password; logon denied
18:31:32 SQL> ERROR:
ORA-01017: invalid username/password; logon denied
18:31:36 SQL> Connected.
18:31:36 SQL> ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
18:31:36 SQL>
可以看到,從第三次密碼錯誤的登入開始,每次延遲時間開始變成2秒、3秒並一次遞增。既是這時提供正確的密碼登入,會話也會延遲N秒,然後進行驗證。不過一旦驗證成功,會將失敗計數清零,後續的錯誤登入會重新計數。
不過這只是單一會話嘗試失敗登入的情況,如果同時存在兩個會話,則很快延遲驗證時間就會達到10秒、20秒的級別。如果同時大量的連線採用錯誤的密碼,基本上這個使用者的登入就會被完全HANG住。
客戶的資料庫就出現了類似的情況,資料庫版本為11.2.0.3 RAC,在資料庫中觀察,三個節點每個節點的會話數都接近SESSIONS引數設定的上線3000,而後臺高階日誌已經出現了ORA-20錯誤。由於客戶系統的關鍵使用者只有一個,因此幾乎所有的會話都無法正常的登入到資料庫中。而在資料庫上發現,大量的會話使用者名稱、EVENT以及PROGRAM都資訊都是NULL,這說明這些會話還沒有完成驗證成功的登入到資料庫中。而當前主機的CPU資源使用並不高,那些已經連線到資料庫中的程式也可以正常的工作。嘗試使用SYSTEM等其他使用者發現可以迅速的登入資料庫。所有這一切都已經說明,當前有一個或多箇中介軟體伺服器在使用錯誤的密碼連線資料庫,由於密碼延遲驗證的策略,導致所有後續的連線都被HANG住。
任何一個新特性帶來效能或功能上的提高的同時,也會引入相關的bug,顯然這個安全性上的考慮,有時候也會帶來驗證的效能問題,甚至成為用來攻擊資料庫的一種手段。
之前幾次並沒有給出徹底遮蔽密碼延遲驗證的手段,而Oracle最強大之處就在於幾乎所有的功能和特性都有對應的開關,通過設定EVENTS 28401可以遮蔽密碼延遲驗證:
SQL> ALTER SYSTEM SET EVENT = ‘28401 TRACE NAME CONTEXT FOREVER, LEVEL 1’ SCOPE = SPFILE;
設定該事件後重啟資料庫即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22990797/viewspace-1410766/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 密碼延遲驗證導致的系統HANG住密碼
- 中止程式導致系統HANG住
- Oracle11g新增密碼錯誤延遲驗證Oracle密碼
- Oracle11g 密碼延遲認證導致library cache lock的情況分析Oracle密碼
- 延遲密碼驗證特性引起的資料庫HANG死及當機密碼資料庫
- ORACLE密碼錯誤驗證延遲Oracle密碼
- Oracle資料庫密碼延遲驗證Oracle資料庫密碼
- 取消 11G延遲密碼驗證密碼
- oracle 11g 密碼延遲驗證問題Oracle密碼
- 11g新特性 密碼錯誤驗證延遲特性的相關驗證密碼
- 11gR2修改使用者後導致系統HANG住
- oracle僵死會話鎖住buffer,導致資料庫hang住Oracle會話資料庫
- 密碼延遲驗出現大量library cache lock密碼
- 批次錯誤使用者名稱與密碼導致業務使用者HANG住(library cache lock)密碼
- 批量錯誤使用者名稱與密碼導致業務使用者HANG住(library cache lock)密碼
- FAL_SERVER設定錯誤導致SWITCHOVER切換HANG住Server
- ORACLE 11g的密碼錯誤延時驗證Oracle密碼
- file-max設定過小導致oracle資料庫hang住Oracle資料庫
- 歸檔日誌無法歸檔導致資料庫hang住資料庫
- Exadata修改sshd密碼驗證方式 延遲10分鐘關閉 明明密碼對了卻登入不上密碼
- jquery 驗證密碼一致性jQuery密碼
- Oracle 11g中的密碼延遲功能Oracle密碼
- Oracle 11g 密碼延遲認證與 library cache lock 等待Oracle密碼
- 導數時資料庫hang住分析資料庫
- 【Mysql】JDB2導致磁碟io使用率高 導致mysql延遲過高MySqlDB2
- 系統出現cursor: mutex X等待導致例項HANG死Mutex
- 直播系統app原始碼,shiro簡單的密碼加鹽與密碼驗證APP原始碼密碼
- Flash Recovery Area空間不足導致資料庫不能開啟或hang住資料庫
- 【DB】在windows系統中oracle11g TNSPING延遲連線緩慢WindowsOracle
- SQL資料庫開發中的SSIS 延遲驗證方法SQL資料庫
- solaris11使用truss解決系統命令hang住
- linux系統重灌導致免密碼key登入失敗Linux密碼
- 身份證號碼驗證系統
- ACCESS 密碼驗證/文字驗證中的小坑密碼
- mysql主鍵的缺少導致備庫hangMySql
- Oracle 密碼驗證方式Oracle密碼
- AIX定時刪除歸檔日誌時系統HANG住AI
- AIX下nfs故障導致oracle process hangAINFSOracle