1、數(shù)據(jù)庫審核規(guī)范
“數(shù)據(jù)庫審核規(guī)范”對(duì)象也屬于SQL Server審核。針對(duì)每個(gè)審核,DBA可以為每個(gè) SQL Server 數(shù)據(jù)庫創(chuàng)建一個(gè)數(shù)據(jù)庫審核規(guī)范。
圖1:SQL Server審核構(gòu)成說明
數(shù)據(jù)庫審核規(guī)范可收集由擴(kuò)展事件功能引發(fā)的數(shù)據(jù)庫級(jí)審核操作。您可以向數(shù)據(jù)庫審核規(guī)范添加審核操作組或?qū)徍耸录?ldquo;審核事件”是可以由 SQL Server 引擎審核的原子操作;“審核操作組”是預(yù)定義的操作組。它們都位于 SQL Server 數(shù)據(jù)庫作用域。這些操作將發(fā)送到審核,審核將它們記錄到目標(biāo)中,,目標(biāo)可以是文件、Windows 安全事件日志或 Windows 應(yīng)用程序事件日志,如圖1所示。管理員必須定期查看和歸檔這些日志,以確保目標(biāo)具有足夠的空間來寫入更多記錄。
屬于db_owner角色的用戶可以修改數(shù)據(jù)庫中任何的審核規(guī)范。
2、如何使用SQL Server審核功能
DBA可以使用SQL Server Management Studio ( SSMS )或Transact-SQL來定義審核。默認(rèn)情況下, SQL Server不會(huì)啟用審核功能,因此我們創(chuàng)建好審核功能后,需要手動(dòng)啟用。
您可以使用Windows中的事件查看器閱讀Windows安全事件日志或者Windows應(yīng)用程序事件日志。您也可以使用日志文件查看工具在SQL Server Management Studio或內(nèi)置的FN_READ_AUDIT_FILE功能在SQL Server中讀取目標(biāo)文件。
創(chuàng)建和使用的審核功能的過程大體如下:
1、創(chuàng)建一個(gè)審核,并定義審核信息需要捕獲的目標(biāo);
2、創(chuàng)建服務(wù)器審核規(guī)范或數(shù)據(jù)庫審核規(guī)范;
3、啟用審核規(guī)范。SQL Server創(chuàng)建審核時(shí),默認(rèn)是不啟用審核規(guī)范的;
4、使用Windows事件查看器,查看日志文件或者使用內(nèi)置FN_READ_AUDIT_FILE功能,分析所捕獲的審核事件。
#p#副標(biāo)題#e#
3、配置SQL Server 2008中的審核對(duì)象
必須先創(chuàng)建和配置可以用于審核的 SQL Server 審核對(duì)象,才可以創(chuàng)建數(shù)據(jù)庫服務(wù)器審核規(guī)范。
1、使用SQL Server Management Studio連接到SQL Server 2008實(shí)例。
2、在對(duì)象資源管理器中,右鍵點(diǎn)擊“安全性à審核”節(jié)點(diǎn),在彈出菜單中選擇“新建審核”選項(xiàng),創(chuàng)建一個(gè)新的審核對(duì)象,如圖2所示:
圖2:新建審核菜單項(xiàng)
3、SQL Server 2008將彈出一個(gè)新的窗口創(chuàng)建審核,如圖3所示:
圖3:創(chuàng)建審核對(duì)象彈出窗口
您需要輸入一些信息:
l 審核名稱:提供審核對(duì)象的名稱
l 隊(duì)列延遲(毫秒):指定在強(qiáng)制處理審核操作之前可以等待的時(shí)間(毫秒)。值 0 指示同步傳遞。默認(rèn)的最小值為 1000(1 秒)。最大值為 2,147,483,647(2,147,483.647 秒,即24天20小時(shí)31分鐘 23.647 秒)。
l 在審核日志故障時(shí)關(guān)閉服務(wù)器:在寫入目標(biāo)的服務(wù)器實(shí)例時(shí),如果無法將數(shù)據(jù)寫入審核目標(biāo)時(shí),強(qiáng)制關(guān)閉服務(wù)器。發(fā)出此命令的登錄名必須具有 SHUTDOWN 權(quán)限。如果該登錄名沒有此權(quán)限,則該函數(shù)將失敗并將引發(fā)錯(cuò)誤消息。
最佳的做法是,只有當(dāng)審核故障可能會(huì)威脅系統(tǒng)的安全性或完整性時(shí),才應(yīng)當(dāng)使用此命令。
l 審核目標(biāo):指定數(shù)據(jù)的審核目標(biāo)。可用選項(xiàng)包括二進(jìn)制文件、Windows 應(yīng)用程序事件日志或 Windows 安全事件日志。如果未在 Windows 中配置其他設(shè)置,SQL Server 無法寫入 Windows 安全事件日志。需要注意的是,在 Windows XP 上不可寫入安全事件日志。
l 文件路徑:當(dāng)指定“審核目標(biāo)”是文件時(shí),要將審核數(shù)據(jù)寫入的該參數(shù)指定的文件夾所在的位置。
打開“瀏覽文件夾”對(duì)話框指定文件路徑或者創(chuàng)建要寫入審核文件的文件夾。
l 最大滾動(dòng)更新文件數(shù):指定要保留在文件系統(tǒng)中的最大審核文件數(shù)。設(shè)置為 MAX_ROLLOVER_FILES=UNLIMITED 時(shí),未對(duì)將創(chuàng)建的滾動(dòng)更新文件數(shù)施加任何限制。默認(rèn)設(shè)置是無限的(UNLIMITED)。可以指定的最大文件數(shù)為 2,147,483,647。
l 最大文件大小:以兆字節(jié) (MB) 為單位指定審核文件的最大大小。可以指定的最小大小為 1024 KB,最大大小為 2,147,483,647 TB。還可以指定 UNLIMITED(即不對(duì)文件大小施加限制)。指定一個(gè)小于 1024 KB 的值將引發(fā)錯(cuò)誤 MSG_MAXSIZE_TOO_SMALL。默認(rèn)設(shè)置為 UNLIMITED。
l 保留磁盤空間:指定在磁盤上預(yù)先分配與指定的最大文件大小相等的空間。只有當(dāng) MAXSIZE 不等于 UNLIMITED 時(shí),才能使用此設(shè)置。默認(rèn)設(shè)置為 OFF。
一旦審核對(duì)象創(chuàng)建后就必須啟用。如圖4所示:
圖4:啟用審核對(duì)象菜單項(xiàng)
#p#副標(biāo)題#e#
5. 如果審核啟用成功后,你將看到類似圖5的提示消息框:
圖5:成功啟用審核后的提示窗口
6. 你可以右鍵點(diǎn)擊SQLServerAuditing,在彈出菜單中,選擇“View Audit Logs”來查看審核日志。
圖6:查看審核日志菜單項(xiàng)
4、配置數(shù)據(jù)庫審核規(guī)范
在本文中,我們假設(shè)對(duì)AdventureWorks數(shù)據(jù)庫創(chuàng)建審核規(guī)范,DBA可以審核Production.Product表中的每一個(gè)選擇,插入,更新和刪除操作。
1、使用SQL Server Management Studio連接到SQL Server 2008實(shí)例。
2、在對(duì)象資源管理器中,右鍵點(diǎn)擊“數(shù)據(jù)庫à AdventureWorksà安全型à審核”節(jié)點(diǎn),在彈出菜單中選擇“新建數(shù)據(jù)庫審核規(guī)范…”選項(xiàng),創(chuàng)建一個(gè)新的數(shù)據(jù)庫審核規(guī)范,如下圖所示:
圖7:新建數(shù)據(jù)庫審核規(guī)范菜單項(xiàng)
3、SQL Server 2008將彈出一個(gè)新的窗口創(chuàng)建數(shù)據(jù)庫審核,如圖8所示:
圖8:創(chuàng)建數(shù)據(jù)庫審核規(guī)范彈出窗口
#p#副標(biāo)題#e#
4、在操作列表中,“審核操作類型”字段我們選擇SELECT;
在“對(duì)象類”字段我們選擇Object;
點(diǎn)擊“對(duì)象名稱”字段旁的按鈕,將彈出一個(gè)對(duì)話框來選擇對(duì)象,在對(duì)話框中我們輸入“[Production].[Product]”,如圖9所示:
圖9:選擇對(duì)象
在圖8界面中,點(diǎn)擊“主體名稱”字段旁的按鈕,選擇“PUBLIC”;
最后點(diǎn)擊“確定”按鈕。
5、按照第4個(gè)步驟,繼續(xù)增加審核操作類型為“INSERT”、“UPDATE” 和 “DELETE”等的操作。增加完后,如圖10所示。
最后點(diǎn)擊“確定”按鈕保存數(shù)據(jù)庫審核規(guī)范。
圖10:創(chuàng)建數(shù)據(jù)庫審核規(guī)范
6、一旦審核對(duì)象創(chuàng)建后就必須啟用。如圖11所示:
圖11:啟用數(shù)據(jù)庫審核規(guī)范菜單項(xiàng)
7. 如果數(shù)據(jù)庫審核規(guī)范啟用成功后,你將看到類似圖12的提示消息框:
圖12:成功啟用數(shù)據(jù)庫審核規(guī)范后的提示窗口
#p#副標(biāo)題#e#
8. 在AdventureWorks 數(shù)據(jù)庫中執(zhí)行以下的T-SQL語句:
Use AdventureWorks Go SELECT * FROM Production.Product GO |
9、 右鍵點(diǎn)擊“安全性à審核àSQLServerAuditing”節(jié)點(diǎn),在彈出菜單中,選擇“查看審核日志”來查看審核日志。
圖13:查看審核日志菜單項(xiàng)
10、SQL Server將彈出一個(gè)對(duì)話框,顯示SELECT事件的詳細(xì)信息:
圖14:查看審核日志信息
5、小結(jié)
SQL Server 2008中的數(shù)據(jù)庫審核特性,允許數(shù)據(jù)庫管理員,能夠在SQL Server 2008上進(jìn)行數(shù)據(jù)庫級(jí)別上的審核。此特性是輕量級(jí)的,與現(xiàn)有的SQL跟蹤, DDL觸發(fā)器和事件通知等機(jī)制相比,開銷也少。