首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 錯誤日誌過濾技術:xp_readerrorlog 與預設追蹤實戰

     編輯:關於SqlServer

場景:暴力破解 sa 帳號產生海量登入失敗日誌

SSMS 開啟巨大 ERRORLOG 極慢,需程式化過濾提取攻擊者 IP 封鎖防火牆。

方法一:xp_readerrorlog 系統預存程序

-- 參數:檔案索引(0=目前)、日誌類型(1=SQL、2=Agent)、搜尋字串1、搜尋字串2
EXEC xp_readerrorlog 0, 1, 'Login failed', 'sa';
-- 進階:日期範圍 (SQL 2012+)
EXEC xp_readerrorlog 0, 1, 'Login failed', 'sa', '2023-01-01', '2023-01-02', 'DESC';

方法二:預設追蹤 獲取登入失敗事件

-- 取得預設追蹤檔案路徑
SELECT path FROM sys.traces WHERE is_default = 1;

-- 使用 fn_trace_gettable 讀取
SELECT LoginName, ClientHost, StartTime, TextData
FROM fn_trace_gettable('C:\...\log_123.trc', DEFAULT)
WHERE EventClass = 20 -- Audit Login Failed
  AND LoginName = 'sa';

錯誤日誌檔案管理

  • 預設保留 7 個檔案 (ERRORLOG, ERRORLOG.1~.6)。
  • 服務重啟或執行 sp_cycle_errorlog / DBCC ERRORLOG 循環產生新檔。
  • 查詢檔案清單:EXEC xp_enumerrorlogs (參數 1=SQL、2=Agent)。

SSMS 錯誤日誌選單

sa 登入失敗記錄

錯誤日誌檔案路徑

xp_enumerrorlogs 輸出

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved