如何開啟SQL Server的Audit Log?

有時因為寫程式要debug、系統的performance tuning,或者內部稽核的需要,必須將MS SQL Server的Audit功能開啟,它會將所有的SQL statement記錄到Log檔。SQL Server提供兩種方式(SQL2000和SQL2005均適用):

  1. C2 audit mode

  2. server-side trace (use SQL profiler)


C2是美國國防部的安全標準,依以下步驟執行可以開啟C2 audit mode。它的Log檔會存放在database file的目錄下(預設是C:\Program Files\Microsoft SQL Server\MSSQL\MSSQL\Data),Log檔會以200MB為單位增加一個新的檔案。它的優點是設定簡單,不過要重起server設定才會生效,不能設定Log layout,也不能設定哪些資訊要記錄到Log,比較沒有彈性,因為不能自訂蒐集資訊,所以開啟C2 audit mode對於系統效能的影響較大。
Step 1. exec sp_configure 'c2 audit mode','1'
Step 2. reconfigure
Step 3. reboot sql server

另一種方式是使用SQL Profiler做server-side trace。開啟SQL Profiler後設定要trace哪些資訊,然後把設定匯出成SQL script,將script放到SQL server去執行,就可以開啟trace功能。此方式的缺點是SQL server重新起動後trace便會失效,如果要讓trace在系統重起後繼續執行,就要將script設定為啟動SQL server時自動執行。它的優點是可以自行設定要記錄的資訊,比第一種方式有彈性,也對於系統效能的影響也比較小。用以下指令可以查詢哪些trace正在執行:




SELECT *FROM ::fn_trace_getinfo(@TraceId)



以上兩種方式所產生的Log檔不是文字檔,要用SQL Profiler才能開啟。


延伸閱讀:



相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

隱私權政策產生器 Privacy Policy Generator

使用 Vysor 在電腦上控制 Android 裝置