oracle 11g“密碼延遲驗(yàn)證”特性
實(shí)驗(yàn)?zāi)繕?biāo):測(cè)試oracle 11g“密碼延遲驗(yàn)證”特性.
Oracle11g引入了“密碼延遲驗(yàn)證”的新特性,如果輸入錯(cuò)誤的密碼登錄,隨著錯(cuò)誤密碼登錄次數(shù)的增加,每次登錄前驗(yàn)證的時(shí)間相應(yīng)也會(huì)增加,此功能目的在于避免黑客將數(shù)據(jù)庫(kù)密碼攻破.
但對(duì)于正常系統(tǒng),由于口令的更改,特別是從10g(默認(rèn)密碼不區(qū)分大小寫)升級(jí)到11g(默認(rèn)密碼區(qū)分大小寫),客戶端不斷重復(fù)錯(cuò)誤密碼嘗試登陸,此時(shí)就會(huì)引起數(shù)據(jù)庫(kù)內(nèi)部長(zhǎng)時(shí)間的LibraryCache Lock等待,這種異常狀態(tài)在生產(chǎn)環(huán)境并不少見(jiàn).
以下模擬該場(chǎng)景:
數(shù)據(jù)庫(kù):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
實(shí)驗(yàn)環(huán)境一個(gè)session尚且這樣,若是生產(chǎn)環(huán)境,成百上千的session都使用錯(cuò)誤的密碼連接過(guò)來(lái),就會(huì)造成嚴(yán)重的LibraryCache Lock的等待事件.
前端用戶使用錯(cuò)誤密碼登錄過(guò)多,就會(huì)導(dǎo)致輸入正確的密碼也需要等待很久,感覺(jué)就是數(shù)據(jù)庫(kù)hang住.不過(guò)該賬號(hào)一旦輸入正確密碼,延時(shí)就會(huì)清0.
遇到該問(wèn)題,可以通過(guò)event28401關(guān)閉該特性:
altersystem set event='28401 trace name context forever,level 1' scope=spfile;
說(shuō)明:參數(shù)SEC_CASE_SENSITIVE_LOGON控制密碼大小寫敏感
Mos文檔:【Doc ID 1309738.1】
