實驗目标:測試oracle 11g“密碼延遲驗證”特性.
Oracle11g引入了“密碼延遲驗證”的新特性,如果輸入錯誤的密碼登錄,随着錯誤密碼登錄次數的增加,每次登錄前驗證的時間相應也會增加,此功能目的在于避免黑客将數據庫密碼攻破.
但對于正常系統,由于口令的更改,特别是從10g(默認密碼不區分大小寫)升級到11g(默認密碼區分大小寫),客戶端不斷重複錯誤密碼嘗試登陸,此時就會引起數據庫内部長時間的LibraryCache Lock等待,這種異常狀态在生産環境并不少見.
以下模拟該場景:
數據庫:oracle 11.2.0.4
20:32:18SQL> conn liujun/leo (登陸消耗3秒)
ERROR:
ORA-01017:invalid username/password; logon denied
Warning:You are no longer connected to ORACLE.
20:32:21SQL> conn liujun/leo (登陸消耗2秒)
ERROR:
ORA-01017:invalid username/password; logon denied
20:32:23SQL> conn liujun/leo (登陸消耗4秒)
ERROR:
ORA-01017:invalid username/password; logon denied
20:32:27SQL> conn liujun/leo (登陸消耗3秒)
ERROR:
ORA-01017:invalid username/password; logon denied
20:32:30SQL> conn liujun/leo (登陸消耗4秒)
ERROR:
ORA-01017:invalid username/password; logon denied
20:32:34SQL> conn liujun/leo (登陸消耗5秒)
ERROR:
ORA-01017:invalid username/password; logon denied
20:32:39SQL> conn liujun/leo (登陸消耗5秒)
ERROR:
ORA-01017:invalid username/password; logon denied
20:32:44SQL> conn liujun/leo (登陸消耗7秒)
ERROR:
ORA-01017:invalid username/password; logon denied
20:32:51SQL> conn liujun/leo
ERROR:
ORA-01017:invalid username/password; logon denied
20:33:00SQL> conn liujun/leo (登陸消耗9秒)
ERROR:
ORA-28000:the account is locked
實驗環境一個session尚且這樣,若是生産環境,成百上千的session都使用錯誤的密碼連接過來,就會造成嚴重的LibraryCache Lock的等待事件.
前端用戶使用錯誤密碼登錄過多,就會導緻輸入正确的密碼也需要等待很久,感覺就是數據庫hang住.不過該賬号一旦輸入正确密碼,延時就會清0.
遇到該問題,可以通過event28401關閉該特性:
altersystem set event='28401 trace name context forever,level 1' scope=spfile;
說明:參數SEC_CASE_SENSITIVE_LOGON控制密碼大小寫敏感
Mos文檔:【Doc ID 1309738.1】
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!