在SQL Server 2008中安裝安全審計

iSQlServer發表於2010-03-18

在SQL Server 2008裡安裝審計,步驟如下:

1. 給每個SQL Server 2008具體例項建立一個SQL Server審計

2. 建立伺服器審計規範、資料庫審計規範或者其中的一個

3. 啟用SQL Server審計

4. 檢視審計資料

在這一技巧中,我將複習其中的每一步並舉例說名它們怎麼進行的。注意大多數情況下這些例子是基於T-SQL語句的。但是,這些步驟也能夠用 SQL Server Management Studio介面來執行。如果想了解更多有關SQL Server Management Studio用法的資訊,請檢視 Microsoft SQL Server聯機叢書。

建立SQL Server審計

第一步你應該在SQL Server 2008的一個例項上建立審計,這樣就能建立一個SQL Server審計。審計就是為與資料庫引擎相關的具體事件集合配置的安全物件。你可以在SQL Server 2008裡的一個例項上建立多個審計。

在建立審計時,你必須給它指定一個名稱和事件輸出的目標位置。目標檔案可以是二進位制的檔案、Windows Security日誌或Windows Application日誌。你還可以給審計物件指定一個或更多個可選引數。

你可以用CREATE SERVER AUDIT語句,如下所示:

 USE master  
GO 
CREATE SERVER AUDIT SrvAudit 
TO FILE (FILEPATH='C:\Data', MAXSIZE=5 MB) 
WITH (QUEUE_DELAY = 3000)

注意,你必須在主資料庫中建立一個審計。由於審計是和SQL Server例項相聯絡的,因此你不能在使用者資料庫中建立。

第一行的CREATE SERVER AUDIT語句僅規定審計名稱(如SrvAudit)。第二行的TO 子句確定事件輸出時的目標位置。例如,我想將輸出結果儲存在檔案中,所以我必須指定TO FILE並規定FILEPATH 值。注意這只是一個路徑名。SQL Server將自動命名輸出檔案,如下所示:

 <audit_name>_<audit_GUID>_<partition_number>.sqlaudit

在上面的例子中,TO FILE語句還包括了MAXSIZE引數,MAXSIZE引數將檔案大小限制為5 MB。該引數是TO FILE子句可選引數之一。如果你將審計資料遷到Application日誌或 Security 日誌,你就只需要指定日誌名選項,示例如下:

 CREATE SERVER AUDIT SrvAudit2 
TO APPLICATION_LOG
WITH (QUEUE_DELAY = 3000)

就像你看到的一樣,TO FILE子句已經被TO APPLICATION_LOG子句所替代並且還沒有另外規定其他的引數。

最後一行在CREATE SERVER AUDIT 語句中的就是一個 WITH子句。該子句支援很多個選項,限制了建立審計的方法。在這種情況下,我使用的是QUEUE_DELAY引數並將它的值設為3000。這個引數指定了在建立審計之前要耗費的毫秒數並且。預設數字為 1000 毫秒(即1秒)。

要了解所有CREATE SERVER AUDIT 語句可選擇項和本篇文章中的其他語句,請檢視Microsoft SQL Server聯機叢書。

建立伺服器審計規範

你建立SQL Server審計之後,必須建立一個伺服器審計規範或者是一個資料庫審計規範或者是其中的每個。一個伺服器審計規範就是和具體的SQL Server審計相關的一個或多個服務審計。活動組就資料庫引擎暴露出來的一組相關的事件,例如,我們在進行安全審計操作時,SERVER_OPERATION_GROUP行動組就出現了,如當使用者在改變伺服器設定時。你可以在每個審計上只建立一個伺服器審計。但是,你可以對審計規範增加多個活動組。建立一個伺服器審計規範,你需要在主資料庫上執行CREATE SERVER AUDIT SPECIFICATION,如下所示:

USE master  
GO
CREATE SERVER AUDIT SPECIFICATION SrvAuditSpec
FOR SERVER AUDIT SrvAudit
ADD (SUCCESSFUL_LOGIN_GROUP),
ADD (FAILED_LOGIN_GROUP)
WITH (STATE=ON)

第一行CREATE SERVER AUDIT SPECIFICATION語句規定了審計規範名(SrvAuditSpec)。第二行FOR SERVER AUDIT子句指定了與審計規範相關的審計名(SrvAudit)。第三行和第四行為 增加了規範活動組的ADD 子句。在這種情況下,我增加了SUCCESSFUL_LOGIN_GROUP和FAILED_LOGIN_GROUP活動組,跟蹤試圖登入到SQL Server例項的安全主管。

最後一行 CREATE SERVER AUDIT SPECIFICATION語句為WITH 子句。WITH 子句包括啟用規範的在STATE引數。預設值不能啟用審計規範(STATE=OFF)。如果你在建立時不能啟用審計規範,你就必須過段時間再啟用,在你能夠審計活動組之前進行啟用。

建立資料庫審計規範

和伺服器的審計規範不一樣,資料庫審計規範是具體針對資料庫的。但是它和伺服器審計規範相同的是,你可以增加審計活動組,但是它們僅僅針對資料庫。此外,你可以給規範增加單獨的審計活動。審計活動就是資料庫具體的活動,如刪除資料或執行儲存程式。

建立資料庫審計規範,在目標資料庫中執行CREATE DATABASE AUDIT SPECIFICATION語句,例如:

USE AdventureWorks2008  
GO
CREATE DATABASE AUDIT SPECIFICATION DbAuditSpec
FOR SERVER AUDIT SrvAudit
ADD (DATABASE_OBJECT_CHANGE_GROUP),
ADD (SELECT, INSERT, UPDATE, DELETE
ON Schema::HumanResources BY dbo)
WITH (STATE=ON)

第一行CREATE DATABASE AUDIT SPECIFICATION語句指定了規範(DbAuditSpec),第二行為FOR SERVER AUDIT 子句,用它可以判斷和規範相關的審計。接下來,我增加了一個審計活動組,在這裡就是 DATABASE_OBJECT_CHANGE_GROUP。在對AdventureWorks2008 資料庫執行CREATE、ALTER 或DROP語句時就會出現這個活動組。

第二個ADD 子句制定了單獨審計活動,而不是一個活動組。這樣,審計活動就是SELECT、INSERT、UPDATE和 DELETE。但是你要注意,下面一行包含一個ON子句指定的HumanResources schema和dbo安全主管。結果,只要dbo在HumanResources schema中查詢一個物件或在 AdventureWorks2008資料庫中插入、更新或刪除,SQL Server就會將事件記入日誌。

最後,CREATE DATABASE AUDIT SPECIFICATION語句中的最後一個子句就是WITH子句。跟上次一樣,你可以在操作完之後就啟用審計規範或者過一段時間之後再進行啟用。

啟用SQL Server審計

和我們剛剛回顧的審計規範一樣,CREATE SERVER AUDIT 語句中的WITH子句並不支援STATE引數。也就是說你必須在單獨的一步中啟用審計,如下面的語句中所示:

USE master  
GO
ALTER SERVER AUDIT SrvAudit
WITH (STATE=ON)

你可以看到,我使用的是ALTER SERVER AUDIT 語句更改我之前建立的SQL Server審計(SrvAudit)。ALTER SERVER AUDIT語句中的WITH子句支援被我設定成ON的STATE引數,SQL Server會審計這些具體事件。

檢視審計資料

你可以在 SQL Server Management Studio中用Log File Viewer檢視審計資料。另外如果你建立SQL Server審計將事件儲存到Application日誌或者Security日誌,這樣你就可以用Event Viewer檢視這些資料。我認為回顧事件資訊最簡單的方法就是將審計資料儲存到一個二進位制檔案中,然後用Log File Viewer回顧這些資料。

要訪問Log File Viewer,就要開啟SQL Server Management Studio,擴充套件Security節點。接下來選擇你要複習的審計,然後點選View Audit Log傳送Log File Viewer。圖1表示以上的例題中SQL Server Audit (SrvAudit)事件例項。

以上就是安裝審計以及回顧審計資料的步驟。SQL Server 2008讓這些步驟比以前版本執行更加簡單。你只需要簡單建立SQL Server審計,並附上一到兩個審計規範,然後啟用。其餘的工作都由SQL Server完成。要了解更多有關審計方面的資訊,請檢視微軟SQL Server聯機叢書。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-629789/,如需轉載,請註明出處,否則將追究法律責任。

相關文章