程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle 11g數據庫審計功能應用實例解析

Oracle 11g數據庫審計功能應用實例解析

編輯:Oracle數據庫基礎
本文我們主要介紹一個Oracle 11g數據庫中審計功能的應用實例,希望能夠對您有所幫助。

在用戶的profile 屬性裡面有一個屬性:FAILED_LOGIN_ATTEMPTS,該參數默認值是10. 即當我們用戶連續10次輸入錯誤密碼,這個用戶就會被鎖住。用戶連詞失敗次數是在表USER$ 中的lcount字段記錄的。 該值默認為0. 當失敗一次,該值加1. 成功登錄,該值清零。

一般在生產環境下,會根據具體情況設置這個參數,如果防止用戶被鎖,則將這個參數設置為UNLIMITED。 這個是注意的地方。當然設置成無限也有它的弊端,比如不能防止暴力破解數據庫密碼。

有關profile 的更多內容參考:

Oracle 用戶 profile 屬性

http://blog.csdn.Net/tianlesoftware/article/details/6238279

在Oracle 11g中默認啟用了對登錄注銷操作LOGON/LOGOFF的審計,那麼如果我們發現用戶被鎖,那麼可以應用11g的審計功能來查看從哪台機器上發來的鏈接失敗導致用戶被鎖,可以幫助我們定位問題。

腳本如下:

  1. SQL> selectos_username,userhost,terminal,username,count(*)  
  2. 2    from dba_audit_trail  
  3. 3   where returncode = 1017 
  4. 4   group byos_username,userhost,username,terminal;  
  5. OS_USERNAME                    USERHOST                       TERMINAL     USERNAME       COUNT(*)  
  6. ------------------------------------------------------------ ------------ ------------ ----------  
  7. DavidDai\Administrator         WORKGROUP\DAVIDDAI             DAVIDDAI    ICD                   7  
  8. DavidDai\Administrator         WORKGROUP\DAVIDDAI             DAVIDDAI     SYSTEM                9  
  9. DavidDai\Administrator         WORKGROUP\DAVIDDAI             DAVIDDAI     SYS                   3  
  10. DavidDai\Administrator         WORKGROUP\DAVIDDAI             DAVIDDAI     EXIT                  1 

注意:對於LOGON PER SECOND很高的數據庫,如果應用程序配置文件中的數據庫用戶密碼不正確,同時應用在短期內發起大量會話登錄數據庫的話可能引發頻繁的dc_users字典緩存鎖,用戶登錄無法成功,乃至整個實例hang住。這個問題直接參考Maclean的blog:

Row Cache lock Problem

http://www.Oracledatabase12g.com/archives/row-cache-lock-problem.Html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved