搜尋本站文章

2009-08-27

SQL Server 2008 的「稽核(SQL Server Audit)」,可以完整記錄所執行的 WHERE 條件式之參數內容值。shows query criteria as a actual record

稽核(SQL Server Audit)是可以稽核到「動作」SELECT與UPDATE等行為。
但在條件式內的資料值部分,並沒有真實呈現,而是以參數型態來呈現。

所以「稽核」物件可以記錄到使用者所執行的動作行為,但並沒有包含資料值的內容。

例如:
可以建立資料庫稽核規格物件稽核下列查詢:
WHERE 條件式是: col1 = '123456 '

但是,稽核事件顯示查詢,如下所示:
WHERE 條件式是: col1 = @1

下圖是僅補抓到參數化值:




這是在 SQL Server 2008 SP1 版本上所遇到的問題。

目前已被證實為臭蟲(Bug)一隻。

若要解決此問題,請安裝:
Cumulative update package 3 for SQL Server 2008 Service Pack 1
SQL Server 2008 Service Pack 1 累積更新套件 3

http://support.microsoft.com/kb/971491/LN/

下圖是完整記錄到WHERE條件式的參數之內容值:



參考資料:
FIX: SQL Server 2008 資料庫稽核顯示查詢準則做為實際的記錄而不是參數化值
http://support.microsoft.com/kb/967552/

Cumulative update package 3 for SQL Server 2008 Service Pack 1
SQL Server 2008 Service Pack 1 累積更新套件 3
http://support.microsoft.com/kb/971491/LN/