SQL Server錯誤記錄檔過濾(ERRORLOG)

來源:互聯網
上載者:User

一、背景

有一天我發現SQL Server伺服器的錯誤記錄檔中包括非常多關於sa使用者的登陸錯誤資訊:“Login failed for user 'sa'. 原因: 評估密碼時出錯。[用戶端: XX.XX.XX.XX]”。可是我很久之前就已經禁用了sa使用者,怎麼還會有那麼多的sa使用者登陸資訊呢?我猜想是有人在暴力破解我們資料庫的sa使用者的密碼;關於這種攻擊,大家有沒好的解決方案呢?

我尋找了一些資料,暫時沒有找到好的解決方案。我只想到一個暫時緩解壓力的辦法,那就是從錯誤資訊中統計出登陸sa使用者的用戶端IP地址,再設定防火牆把這些IP過濾掉。

那現在如何解決IP的統計呢?使用SSMS是根本無法進行統計,因為錯誤記錄檔的記錄太多了。SSMS開啟錯誤記錄檔的方式如下圖Figure1和Figure2所示;

(Figure1:SQL Server 日誌)

(Figure2:sa登陸資訊)

經過資料的尋找,發現有兩種方式可以對錯誤記錄檔進行過濾:

1. 利用SQL Server系統預存程序xp_readerrorlog進行過濾;

2. 利用預設跟蹤(Default Trace)進行過濾;

二、xp_readerrorlog實現錯誤記錄檔過濾

(一) 關於錯誤記錄檔的基本操作可以參考:SQL Server錯誤記錄檔收縮(ERRORLOG)。首先瞭解錯誤記錄檔檔案的路徑和大小,可以通過Figure3的方式找到檔案,查看大小。

(Figure3:SQL Server ErrorLog檔案資訊)

除了Figure3直接找到錯誤記錄檔的方式之外,我們還可以通過執行預存程序EXEC xp_enumerrorlogs返回表的形式進行查看資訊,如Figure4所示。xp_enumerrorlogs預存程序還提供參數,預設值為1(如果沒有提供參數表示傳入的參數為1),2的時候表示查詢SQL Server Agent錯誤記錄檔列表,如Figure13所示。

--Script1:擷取[SQL Server]錯誤記錄檔列表EXEC xp_enumerrorlogsEXEC xp_enumerrorlogs 1

(Figure4:SQL Server 錯誤記錄檔列表)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.