CREATE SERVER AUDIT (Transact-SQL)
使用 SQL Server Audit 來建立伺服器稽核物件。如需詳細資訊,請參閱<了解 SQL Server Audit>。
語法
CREATE SERVER AUDIT audit_name
TO { [ FILE (<file_options> [ , ...n ]) ] | APPLICATION_LOG | SECURITY_LOG }
[ WITH ( <audit_options> [ , ...n ] ) ]
}
[ ; ]
<file_options>::=
{
FILEPATH = 'os_file_path'
[ , MAXSIZE = { max_size { MB | GB | TB } | UNLIMITED } ]
[ , MAX_ROLLOVER_FILES = { integer | UNLIMITED } ]
[ , RESERVE_DISK_SPACE = { ON | OFF } ]
}
<audit_options>::=
{
[ QUEUE_DELAY = integer ]
[ , ON_FAILURE = { CONTINUE | SHUTDOWN } ]
[ , AUDIT_GUID = uniqueidentifier ]
}
引數
TO { FILE | APPLICATION_LOG | SECURITY }
判斷稽核目標的位置。選項有二進位檔案、Windows 應用程式記錄檔或 Windows 安全性記錄檔。如果沒有在 Windows 中設定其他設定,SQL Server 就無法寫入 Windows 安全性記錄檔。如需詳細資訊,請參閱<如何:將伺服器稽核事件寫入安全性記錄檔>。[!附註]
Windows XP 不支援寫入安全性記錄檔。
FILEPATH = 'os_file_path'
稽核記錄檔的路徑。檔案名稱是根據稽核名稱和稽核 GUID 所產生。MAXSIZE = { max_size }
指定稽核檔案所能成長的大小上限。max_size 值必須是整數,而且後面緊接著 MB、GB、TB 或 UNLIMITED。您可以為 max_size 指定的大小下限為 2 MB,而上限則為 2,147,483,647 TB。指定了 UNLIMITED 時,檔案會成長到磁碟已滿為止。指定低於 2 MB 的值將會引發 MSG_MAXSIZE_TOO_SMALL 錯誤。預設值為 UNLIMITED。MAX_ROLLOVER_FILES = { integer | UNLIMITED }
除了目前的檔案以外,指定要保留在檔案系統中的檔案數目上限。MAX_ROLLOVER_FILES 值必須是整數或 UNLIMITED。預設值為 UNLIMITED。每當稽核重新啟動 (當 Database Engine 的執行個體重新啟動或者稽核先關閉然後再次開啟時,就可能會發生此情況) 或者由於達到 MAXSIZE 而需要新的檔案時,系統就會評估此參數。評估MAX_ROLLOVER_FILES 時,如果檔案的數目超過 MAX_ROLLOVER_FILES 設定,系統就會刪除最舊的檔案。因此,如果 MAX_ROLLOVER_FILES 的設定為 0,每次評估 MAX_ROLLOVER_FILES 設定時,系統都會建立新的檔案。評估 MAX_ROLLOVER_FILES 設定時,系統只會自動刪除一個檔案,所以當您降低 MAX_ROLLOVER_FILES 的值時,除非手動刪除舊的檔案,否則檔案的數目將不會縮減。可以指定的最大檔案數目為 2,147,483,647。RESERVE_DISK_SPACE = { ON | OFF }
這個選項會在磁碟上將檔案預先配置為 MAXSIZE 值。只有當 MAXSIZE 不等於 UNLIMITED 時,才會套用它。預設值是 OFF。QUEUE_DELAY = integer
判斷在強制處理稽核動作之前經過的時間長度 (以毫秒為單位)。值為 0 表示同步傳遞。可設定的最小查詢延遲值為 1000 (1 秒),這是預設值。最大值為 2,147,483,647 (2,147,483.647 秒鐘或是 24 天 20 小時 31 分鐘又 23.647 秒鐘)。指定無效的數字將會引發 MSG_INVALID_QUEUE_DELAY 錯誤。ON_FAILURE = { CONTINUE | SHUTDOWN }
指示如果目標無法執行寫入,則寫入目標的執行個體是應該繼續還是停止。發出此內容的登入必須具有 SHUTDOWN 權限。如果登入沒有此權限,這個功能將會失敗,並傳回 MSG_NO_SHUTDOWN_PERMISSION 訊息。預設值為 CONTINUE。AUDIT_GUID = uniqueidentifier
若要支援類似資料庫鏡像等案例,稽核需要一個特定的 GUID,而且此 GUID 要符合鏡像資料庫中找到的 GUID。當建立稽核之後,就無法再修改 GUID。
備註
當建立伺服器稽核之後,它就會處於停用狀態。
CREATE SERVER AUDIT 陳述式位於交易的範圍內。如果回復交易,也會回復此陳述式。
權限
若要建立、更改或卸除伺服器稽核,主體需要使用 ALTER ANY SERVER AUDIT 或 CONTROL SERVER 權限。
當您將稽核資訊儲存到檔案時,為了避免遭到篡改,您可以限制對檔案位置的存取:
範例
A. 建立具有檔案目標的伺服器稽核
下列範例會建立稱為 HIPPA_Audit 的伺服器稽核,並將二進位檔案當做目標而且不指定任何選項。
CREATE SERVER AUDIT HIPAA_Audit
TO FILE ( FILEPATH ='\\SQLPROD_1\Audit\' );
B. 建立具有 Windows 事件記錄檔目標 (含選項) 的伺服器稽核
下列範例會建立稱為 HIPPA_Audit 的伺服器稽核,並包含針對 Windows 應用程式記錄檔所設定的目標。每秒鐘都會寫入此佇列,並在失敗時關閉 SQL Server 引擎。
CREATE SERVER AUDIT HIPAA_Audit
TO APPLICATION_LOG
WITH ( QUEUE_DELAY = 1000, ON_FAILURE = SHUTDOWN);
請參閱