在 SQL Server 2008 上創建審計跟踪以跟踪所有特權使用者
我需要創建對 SysAdmin 或 SecurityAdmin 伺服器角色成員發出的所有命令的跟踪。我想,我可以使用 Profiler 來做到這一點,但它不會包含所有添加的成員。我還檢查了新的審核功能,是的,我可以跟踪這些角色的成員資格更改,但我不會獲得他們所有的活動日誌。
我現在看到的只是在伺服器角色成員身份更改時使用 DDL 觸發器重新啟動跟踪。
比我聰明的人有更好的主意嗎?
您可能正在尋找類似Change Data Capture的東西。
更改數據擷取旨在擷取應用於 SQL Server 表的插入、更新和刪除活動,並以易於使用的關係格式提供更改的詳細資訊。變更數據擷取使用的變更表包含反映跟踪源表的列結構的列,以及了解已發生的變更所需的元數據。
變更數據擷取僅適用於 SQL Server 的 Enterprise、Developer 和 Evaluation 版本。
例如,您可以使用儲存過程和函式。通過專門開發的儲存過程和函式跟踪誰看到了什麼。為了使用這種審計方法,必須通過使用儲存過程來限制對數據庫的訪問(只允許 EXEC 語句,同時禁止所有查詢和 DML 操作)。查詢的結果由儲存過程返回,同時儲存過程將訪問記錄在適當的審計儲存庫表中以及其他感興趣的資訊(例如執行時間) 但是,這種審計方法需要 T -SQL 程式和儲存過程和函式的附加維護(例如,在數據庫模式更改的情況下)。此外,由受信任方執行的臨時查詢(例如
除了跟踪之外,您還可以使用 SQL Server 2008 中引入的 SQL Server 審計功能。該功能利用擴展事件技術,並審計伺服器和數據庫事件。但是,僅 Enterprise 和 Developer 版本支持數據庫級別的審核
使用 SQL Server Audit 作為跟踪 SELECT 語句執行的方法產生的成本比跟踪技術少,但根據數據庫的繁忙程度,可能會對伺服器性能產生影響。T-SQL 或 SQL Server Management Studio 選項均可用於設置 SQL Server 審核功能