Oracle 11g數(shù)據(jù)庫審計(jì)功能應(yīng)用實(shí)例解析
上次我們介紹了:Oracle 11g數(shù)據(jù)庫默認(rèn)審計(jì)選項(xiàng)說明詳解,本文我們主要介紹一個(gè)Oracle 11g數(shù)據(jù)庫中審計(jì)功能的應(yīng)用實(shí)例,希望能夠?qū)δ兴鶐椭?/p>
在用戶的profile 屬性里面有一個(gè)屬性:FAILED_LOGIN_ATTEMPTS,該參數(shù)默認(rèn)值是10. 即當(dāng)我們用戶連續(xù)10次輸入錯(cuò)誤密碼,這個(gè)用戶就會被鎖住。用戶連詞失敗次數(shù)是在表USER$ 中的lcount字段記錄的。 該值默認(rèn)為0. 當(dāng)失敗一次,該值加1. 成功登錄,該值清零。
一般在生產(chǎn)環(huán)境下,會根據(jù)具體情況設(shè)置這個(gè)參數(shù),如果防止用戶被鎖,則將這個(gè)參數(shù)設(shè)置為UNLIMITED。 這個(gè)是注意的地方。當(dāng)然設(shè)置成無限也有它的弊端,比如不能防止暴力破解數(shù)據(jù)庫密碼。
有關(guān)profile 的更多內(nèi)容參考:
http://blog.csdn.net/tianlesoftware/article/details/6238279
在Oracle 11g中默認(rèn)啟用了對登錄注銷操作LOGON/LOGOFF的審計(jì),那么如果我們發(fā)現(xiàn)用戶被鎖,那么可以應(yīng)用11g的審計(jì)功能來查看從哪臺機(jī)器上發(fā)來的鏈接失敗導(dǎo)致用戶被鎖,可以幫助我們定位問題。
腳本如下:
- SQL> selectos_username,userhost,terminal,username,count(*)
- 2 from dba_audit_trail
- 3 where returncode = 1017
- 4 group byos_username,userhost,username,terminal;
- OS_USERNAME USERHOST TERMINAL USERNAME COUNT(*)
- ------------------------------------------------------------ ------------ ------------ ----------
- DavidDai\Administrator WORKGROUP\DAVIDDAI DAVIDDAI ICD 7
- DavidDai\Administrator WORKGROUP\DAVIDDAI DAVIDDAI SYSTEM 9
- DavidDai\Administrator WORKGROUP\DAVIDDAI DAVIDDAI SYS 3
- DavidDai\Administrator WORKGROUP\DAVIDDAI DAVIDDAI EXIT 1
注意:對于LOGON PER SECOND很高的數(shù)據(jù)庫,如果應(yīng)用程序配置文件中的數(shù)據(jù)庫用戶密碼不正確,同時(shí)應(yīng)用在短期內(nèi)發(fā)起大量會話登錄數(shù)據(jù)庫的話可能引發(fā)頻繁的dc_users字典緩存鎖,用戶登錄無法成功,乃至整個(gè)實(shí)例hang住。這個(gè)問題直接參考Maclean的blog:
Row Cache lock Problem
http://www.oracledatabase12g.com/archives/row-cache-lock-problem.html
關(guān)于Oracle 11g數(shù)據(jù)庫審計(jì)功能的應(yīng)用實(shí)例就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】






