日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL Server安全(11/11):审核(Auditing)

發(fā)布時(shí)間:2023/12/31 数据库 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL Server安全(11/11):审核(Auditing) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在保密你的服務(wù)器和數(shù)據(jù),防備當(dāng)前復(fù)雜的攻擊,SQL Server有你需要的一切。但在你能有效使用這些安全功能前,你需要理解你面對(duì)的威脅和一些基本的安全概念。這篇文章提供了基礎(chǔ),因此你可以對(duì)SQL Server里的安全功能充分利用,不用在面對(duì)特定威脅,不能保護(hù)你數(shù)據(jù)的功能上浪費(fèi)時(shí)間。


SQL Server審核

SQL Server里的審核指的是你可以在數(shù)據(jù)庫或服務(wù)器實(shí)例里監(jiān)控事件。審核日志包含你選擇捕獲的一系列事件,對(duì)于數(shù)據(jù)庫和服務(wù)器對(duì)象,主體和操作,在服務(wù)器上形成活動(dòng)記錄。你可以捕獲發(fā)生的幾乎任何數(shù)據(jù),同時(shí)包括成功和不成功的登錄;讀取的,更新的,刪除的數(shù)據(jù);管理任務(wù);還有更多。審核可以深入數(shù)據(jù)庫和服務(wù)器。

回顧追溯已經(jīng)發(fā)生事件可能是一種很奇怪的方法。但設(shè)計(jì)日志常是你用來監(jiān)控攻擊的第一個(gè)且最好的資源,尤其是當(dāng)攻擊者只探測(cè)數(shù)據(jù)庫還沒有成功訪問數(shù)據(jù)或進(jìn)行破壞。但入侵發(fā)生時(shí),監(jiān)管部門和媒體會(huì)下來對(duì)你,審核日志就是可能會(huì)幫你找出發(fā)生了什么,什么數(shù)據(jù)被訪問,和入侵的源頭。沒有日志,很可能你必須抓住攻擊者并審問他們才可以明確知道到底發(fā)生了什么!

SQL Server有長(zhǎng)期有提供支持審核的功能,但直到SQL Server 2008,審核才真正成為一個(gè)核心功能,有內(nèi)建對(duì)象,T-SQL支持,在SSMS里有用戶界面。微軟從這個(gè)初始版本學(xué)到很多教訓(xùn),在SQL Server 2012里做出一些漂亮的增強(qiáng)。其中一個(gè)最大的改變是微軟在SQL Server的所有版本里支持審核,并不單單企業(yè)版。這就是說限制你可以在任何版本里,指定在所有的數(shù)據(jù)庫里創(chuàng)建審核。但這個(gè)消息是混合的:只在企業(yè)、開發(fā)和評(píng)估版本里,可以進(jìn)行單個(gè)數(shù)據(jù)庫監(jiān)控。因此如果你測(cè)試或評(píng)估SQL Server,最終在生產(chǎn)里使用企業(yè)版,確定你使用的版本有你需要的功能。

多年來推動(dòng)的審核的一部分是全世界各個(gè)政府對(duì)不同類型組織的法律要求。結(jié)果,現(xiàn)在SQL Server用來保護(hù)世界上一些最嚴(yán)格的監(jiān)管組織,行業(yè)和數(shù)據(jù)。

SQL Server審核對(duì)象

不管你使用T-SQL還是SSMS的用戶界面操作審核,你會(huì)與三個(gè)對(duì)象打交道。

  • 服務(wù)器審核:對(duì)于你的審核,服務(wù)器審核對(duì)象是最高級(jí)別的容器;你經(jīng)常為一個(gè)審核使用這個(gè)對(duì)象。通常你會(huì)為特定的目的,創(chuàng)建服務(wù)器審核到組,包含一個(gè)或多個(gè)審核規(guī)范,例如承諾,或?yàn)橐幌盗械姆?wù)器或數(shù)據(jù)庫對(duì)象。你會(huì)使用這個(gè)對(duì)象到特定的審核名稱,那里用來保存審核日志,限于日志,和在審核失敗事件里發(fā)生了什么。你也可以定義篩選來給你在事件日志里顆粒級(jí)別的控制。
  • 服務(wù)器審核規(guī)格:使用這個(gè)對(duì)象在審核日志里來定義特定服務(wù)器級(jí)別的事件來捕獲。規(guī)格與你剛才創(chuàng)建的具體服務(wù)器審核相關(guān)。這里是你定義的地方,即你在想要記錄的對(duì)象上的事件。
  • 數(shù)據(jù)庫審核規(guī)格:這個(gè)對(duì)象和服務(wù)器審核規(guī)格類似,除了你會(huì)在單個(gè)數(shù)據(jù)庫里用它來捕獲事件。它也和一個(gè)服務(wù)器審核對(duì)象關(guān)聯(lián)。

你會(huì)經(jīng)常用到服務(wù)器審核對(duì)象,連同一個(gè)或其它對(duì)象,取決于在日志里你想要捕獲的事件類型。如果你想要記錄的所有事件在單個(gè)數(shù)據(jù)庫,使用數(shù)據(jù)庫審核規(guī)格對(duì)象。否則,如果事件跨越兩個(gè)或更多數(shù)據(jù)庫,或是服務(wù)器級(jí)別的事件,使用服務(wù)器審核規(guī)格對(duì)象。

當(dāng)你創(chuàng)建一個(gè)服務(wù)器審核時(shí),你可以為審核日志選擇三個(gè)位置之一:Windows應(yīng)用程序日志,Windows安全日志,或文件系統(tǒng)里的一個(gè)文件。對(duì)你寫入審核數(shù)據(jù)的位置你要非常仔細(xì),因?yàn)樗芸赡馨裆鐣?huì)保障號(hào),信用卡號(hào),工資,企業(yè)財(cái)務(wù)數(shù)據(jù)等敏感信息。因此,你要使用未授權(quán)用戶不能訪問的位置。這就是說Windows應(yīng)用程序日志不是個(gè)好選擇,因?yàn)槟J(rèn)情況下,用戶不需要更高的許可來查看它。但安全日志可以是個(gè)好選擇,因?yàn)樵L問需要管理員許可。文件夾中的文件也可以是個(gè)好選擇,因?yàn)槟憧梢园踩募A或它里面的文件使用Windows內(nèi)建的安全系統(tǒng)。

創(chuàng)建一個(gè)服務(wù)器審核

你可以使用SSMS里的圖形話界面工具或T-SQL語句創(chuàng)建SQL Server審核。使用SSMS的審核的圖形界面更加簡(jiǎn)單,以為我們從這里開始。打開SSMS連接到本地SQL Server實(shí)例。在對(duì)象瀏覽器里,切換到最高層的【安全性】節(jié)點(diǎn)——不是數(shù)據(jù)庫里的【安全性】節(jié)點(diǎn)——展開節(jié)點(diǎn),你會(huì)看到審核。

提示:這里我使用的是SQL Server 2012和AdventureWorks2012樣本數(shù)據(jù)庫。

你可以使用這個(gè)對(duì)話框來設(shè)置你創(chuàng)建的服務(wù)器審核對(duì)象的各種屬性:

  • 審核名稱:SQLServer默認(rèn)以當(dāng)前的日期和時(shí)間自動(dòng)生成,如Audit-20160430-084903格式,你也可以設(shè)置為你需要的名稱。我設(shè)置為Sample Audit來更好的區(qū)分。
  • 隊(duì)列延遲:接下來你可以用毫秒來設(shè)置隊(duì)列延遲,默認(rèn)是1秒,這表示你愿意等待系統(tǒng)寫入日志條目的最大時(shí)間是1秒。這個(gè)值是性能和完全之間的權(quán)衡:更短的時(shí)間限制,在災(zāi)難故障前,更容易記錄關(guān)鍵事件,但會(huì)影響到服務(wù)器性能。對(duì)于這服務(wù)器審核,我保持默認(rèn)設(shè)置,意味著最壞的情況我會(huì)丟失一秒的條目。對(duì)于范例審核,完全可以接受。
  • 接下來的設(shè)置決定在審核日志失敗時(shí)會(huì)發(fā)生什么當(dāng)SQL Server不能寫入一條審核日志條目時(shí),可能因?yàn)闆]有可用的磁盤空間。默認(rèn)是【繼續(xù)】,在系統(tǒng)事件日志里有會(huì)有一條錯(cuò)誤,但潛在的操作還是繼續(xù)。當(dāng)審核至關(guān)重要,面對(duì)審核失敗,不管操作還是服務(wù)器執(zhí)行都不應(yīng)該繼續(xù),可以使用【關(guān)閉服務(wù)器】選項(xiàng)。這是一個(gè)嚴(yán)厲的操作——關(guān)閉SQL Server服務(wù)——但審核至關(guān)重要時(shí)這個(gè)是必須的。【操作失敗】是在這2個(gè)極端之間,引起造成失敗的事務(wù)回滾。這個(gè)設(shè)置我也保持默認(rèn)。
  • 對(duì)話框上剩下的選項(xiàng)與你選擇的審計(jì)目標(biāo)有關(guān)。有3個(gè)選項(xiàng):文件,安全日志,和應(yīng)用程序日志。如果你選擇了后2個(gè)系統(tǒng)事件日志選項(xiàng),沒有可用的其它選項(xiàng),剩下的選項(xiàng)只針對(duì)【文件】.
  • 如果你選擇了【文件】選項(xiàng),你需要指定一個(gè)文件路徑。對(duì)于這個(gè)例子,我選擇D:\Junk。你可以把審核文件放在你想要的任何地方,例如其它盤甚至在網(wǎng)絡(luò)硬盤上。
  • 其它選項(xiàng)與存儲(chǔ)日志文件有關(guān),讓你在數(shù)據(jù)量和文件輸上有限制。你可以指定【最大滾動(dòng)更新文件數(shù)】,也可以指定【最大文件數(shù)】。使用【最大滾動(dòng)更新文件數(shù)】選項(xiàng),一旦文件夾里文件數(shù)達(dá)到最大數(shù),SQL Server開始用最新的文件覆蓋最老的文件。使用【最大文件數(shù)】選項(xiàng),一旦達(dá)到指定的文件數(shù),寫入審核日志會(huì)失敗。如果你勾選了關(guān)聯(lián)的【無限制】選項(xiàng),對(duì)于滾動(dòng)更新數(shù)和文件數(shù)沒有限制。你也可以指定【最大文件大小】,也可以設(shè)置【無限制】選項(xiàng)。對(duì)話框上的最后一個(gè)選項(xiàng),【保留磁盤空間】,告訴SQL Server預(yù)留磁盤空間到你指定的最大文件大小,對(duì)于最大文件大小,只有在選擇了【無限制】的情況下才會(huì)有。因此對(duì)于指定硬盤上的空間量,你有大量的控制選項(xiàng)。

插圖11.1顯示了對(duì)于Sample Audit完整的創(chuàng)建審核對(duì)話框信息。

插圖11.1:在SSMS里,使用創(chuàng)建審核對(duì)話框創(chuàng)建一個(gè)服務(wù)器審核對(duì)象。

你也可以使用T-SQL代碼創(chuàng)建審核。代碼11.1顯示了創(chuàng)建剛才一樣配置的審核,使用CREATE SERVER AUDIT語句。我使用腳本按鈕生成了這個(gè)代碼,在創(chuàng)建審核對(duì)話框上,我修改了我想要的配置后,我還修改了一些代碼。

USE master; GO CREATE SERVER AUDIT [Sample Audit] TO FILE ( FILEPATH = N'D:\Junk',MAXSIZE = 0 MB,MAX_ROLLOVER_FILES = 2147483647,RESERVE_DISK_SPACE = OFF ) WITH ( QUEUE_DELAY = 1000,ON_FAILURE = CONTINUE ); GO

代碼11.1:你可以用來創(chuàng)建Sample Audit的T-SQL代碼

代碼11.2向你展示了如何創(chuàng)建一個(gè)服務(wù)器審核,寫入日志到系統(tǒng)應(yīng)用程序事件日志,而不是文件。沒有其它可以設(shè)置選項(xiàng),因此語句比剛才的例子小很多。

CREATE SERVER AUDIT SQLServerAuditTO APPLICATION_LOGWITH ( QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE); GO

代碼11.2:創(chuàng)建寫入系統(tǒng)應(yīng)用程序日志的SQL Server 審核的代碼

在創(chuàng)建這2個(gè)審核后,可以看下對(duì)象瀏覽器的【安全性】節(jié)點(diǎn)里的【審核】節(jié)點(diǎn)(你要刷新下節(jié)點(diǎn)內(nèi)容來查看它們),如插圖11.2所示。看下,在放大鏡圖標(biāo)上獨(dú)有一個(gè)向下的紅色箭頭。這表示審核還沒啟用,創(chuàng)建后默認(rèn)都沒啟用。你可以在對(duì)象瀏覽器里右擊審核,在彈出菜單里選擇【啟用審核】來啟用它們,或者用代碼11.3使用ALTER SERVER AUDIT語句來修改審核。一旦啟用審計(jì),紅色向下箭頭會(huì)消失,在對(duì)象瀏覽器里你要刷新下來才可以看到。如果你在SSMS里和我們一起來操作,啟用它們吧,一會(huì)我們要用到。

插圖11.2:在對(duì)象瀏覽器里新建但沒啟用的服務(wù)器審核

1 ALTER SERVER AUDIT SQLServerAudit WITH (STATE = ON); 2 GO

代碼11.3:啟用SQLServerAudit審核的代碼

創(chuàng)建一個(gè)服務(wù)器審核規(guī)范

一旦你創(chuàng)建了一個(gè)服務(wù)器審核,你可以定義你想要寫入的審核時(shí)間。一個(gè)服務(wù)器審核基本上是審核規(guī)范的容器。記住有2類審核規(guī)范:服務(wù)器和數(shù)據(jù)庫審核規(guī)范。

這里我創(chuàng)建的服務(wù)器審核規(guī)范會(huì)記錄所有SQL Server失敗的登陸。這個(gè)是服務(wù)器層級(jí)操作,不是單個(gè)數(shù)據(jù)庫,因此我需要在服務(wù)器層級(jí)創(chuàng)建一個(gè)規(guī)范,而不是單個(gè)數(shù)據(jù)庫層級(jí)。在SSMS里使用圖形化用戶界面,在服務(wù)器層級(jí)【安全性】節(jié)點(diǎn)里,右擊【服務(wù)器審核規(guī)范】,從彈出菜單里選擇【新建服務(wù)器審核規(guī)范】來打開【Create Server Audit Specification】對(duì)話框。

你可以使用默認(rèn)生成的名稱,但我這里命名為TestSQLServerAuditSpec。然后從【審核】下拉列表里選擇【Sample Audit】,這里包含了SQL Server實(shí)例里已存在的所有服務(wù)器審核,選擇【Sample Audit】意味著審核日志項(xiàng)目會(huì)進(jìn)入審核里定義的文件系統(tǒng)。

然后你可以使用對(duì)話框里【審核操作類型】來定義你想要記錄的事件或事件組。可用操作類型很豐富,如插圖11.3所示。對(duì)于這個(gè)規(guī)范,選擇【FAILED_LOGIN_GROUP】類型。

插圖11.3:你可以選擇記錄的服務(wù)器操作審核類型很多

對(duì)于FAILED_LOGIN_GROUP操作類型剩下的列都停用了,因?yàn)閷?duì)于這個(gè)類型沒有其它可用選項(xiàng)。但其它類型會(huì)讓你關(guān)聯(lián)多個(gè)服務(wù)器對(duì)象。對(duì)話框如插圖11.4所示,但你點(diǎn)擊【確定】的時(shí)候會(huì)創(chuàng)建規(guī)范。

插圖11.4:使用SSMS定義新的服務(wù)器審核規(guī)范

新定義的服務(wù)器審核規(guī)范會(huì)在對(duì)象瀏覽器里的【服務(wù)器審核規(guī)范】節(jié)點(diǎn)里出現(xiàn),默認(rèn)是停用的。你可以右擊這個(gè)規(guī)范從彈出菜單里選擇【啟用服務(wù)器審核規(guī)范】來啟用它。

你也可以使用代碼11.4來創(chuàng)建新的服務(wù)器審核規(guī)范。這個(gè)代碼使用WITH子句來接受用ON或OFF的STATE參數(shù)值,來啟用或停用規(guī)范。如果你忽略這個(gè)子句,狀態(tài)默認(rèn)是OFF。

1 CREATE SERVER AUDIT SPECIFICATION TestSQLServerAuditSpec 2 FOR SERVER AUDIT [Sample Audit] ADD (FAILED_LOGIN_GROUP) 3 WITH (STATE = ON); 4 GO

代碼11.4:使用可選的WITH子句來創(chuàng)建新的立即生效服務(wù)器審核規(guī)范。

測(cè)試審核,連接到SQL Server實(shí)例,嘗試用不正確的登陸來連接實(shí)例。你可以用另一個(gè)的SSMS實(shí)例,也可以在對(duì)象瀏覽器的工具欄新開一個(gè)。

然后在對(duì)象瀏覽器里右擊【安全性】【審核】下的【Sample Audit】,從彈出菜單里選擇【查看審核日志】。你會(huì)看到如插圖11.5的里列表。每行包含事件的一些信息,你可以拉伸下窗體看到更多的欄目信息。但當(dāng)你點(diǎn)擊一條記錄時(shí),數(shù)據(jù)會(huì)顯示在窗體下方,更容易閱讀。遺憾的是,列的格式并不好,如你在圖中所示。

插圖11.5:對(duì)Sample Audit查看它的審核日志

注意服務(wù)器審核自動(dòng)捕獲修改審核日志的事件,這里是我啟用服務(wù)器審核的事件。即在圖里表顯示的第二行。

提示:

在它們捕獲并寫入事件前,你要啟用服務(wù)器審核和服務(wù)器審核規(guī)范。通常,你在創(chuàng)建它們的時(shí)候就會(huì)啟用它們。

創(chuàng)建一個(gè)數(shù)據(jù)庫審核規(guī)范

創(chuàng)建一個(gè)數(shù)據(jù)庫審核規(guī)范和創(chuàng)建服務(wù)器審核規(guī)范基本一樣。最大的區(qū)別是在日志里你可以捕獲的事件范圍。數(shù)據(jù)庫審核規(guī)范只能在單個(gè)數(shù)據(jù)庫捕獲事件,例如通過T-SQL語句訪問數(shù)據(jù),修改數(shù)據(jù)庫對(duì)象的結(jié)構(gòu)或許可,或執(zhí)行存儲(chǔ)過程。其它最大的區(qū)別是你在數(shù)據(jù)庫對(duì)象里創(chuàng)建規(guī)范,而不是在對(duì)象瀏覽器里的服務(wù)器層級(jí)里創(chuàng)建。

假設(shè)你想創(chuàng)建審核記錄什么時(shí)候,什么用戶或進(jìn)程在AdventureWorks2012數(shù)據(jù)庫里對(duì)Person.Person表執(zhí)行了SELECT語句。在數(shù)據(jù)庫里,找到AdventureWorks2012數(shù)據(jù)庫,展開節(jié)點(diǎn),在【安全性】【數(shù)據(jù)庫審核規(guī)范】右擊,從彈出菜單里選擇【新建數(shù)據(jù)庫審核規(guī)范】,這會(huì)打開【創(chuàng)建數(shù)據(jù)庫審核規(guī)范】對(duì)話框,修改自動(dòng)生成的【名稱】為Person Data Access,【審核】里選擇Sample Audit,在操作里選擇如插圖11.6的內(nèi)容。

插圖11.6:創(chuàng)建數(shù)據(jù)庫審核規(guī)范記錄在AdventureWorks2012數(shù)據(jù)庫里什么時(shí)候什么用戶查詢了Person.Person表

你可以設(shè)置主體名稱為任何數(shù)據(jù)庫用戶或角色,包括公共數(shù)據(jù)庫角色來包含訪問數(shù)據(jù)庫的所有人。和服務(wù)器審核規(guī)范一樣,你可以增加多個(gè)操作。

一旦你創(chuàng)建了規(guī)范,記得啟用它。

同樣,你也可以使用T-SQL代碼來創(chuàng)建這個(gè)規(guī)范,有自動(dòng)啟用的選項(xiàng)WITH子句。

1 USE AdventureWorks2014; 2 GO 3 4 CREATE DATABASE AUDIT SPECIFICATION [Person Data Access] 5 FOR SERVER AUDIT [Sample Audit] 6 ADD (SELECT ON OBJECT::Person.Person BY public) 7 WITH (STATE = ON); 8 GO

代碼11.5:創(chuàng)建數(shù)據(jù)庫審核規(guī)范記錄Person.Person被查詢

接下來,你可以通過執(zhí)行對(duì)表的SELECT操作測(cè)試審核規(guī)范。一旦這樣做后,再次檢查下Sample Audit的審核日志,如插圖11.7所示。如你所見,日志包含了事件的完整信息,包括引起它的SQL語句。

插圖11.7:當(dāng)查詢Person.Persion表時(shí)的審核日志

注意在圖中的【其它信息】是空的。這是因?yàn)樯扇罩緱l目的事件是直接的SELECT語句。但當(dāng)SELECT語句在存儲(chǔ)過程里或其它代碼模塊里執(zhí)行時(shí),其它信息會(huì)包含T-SQL堆棧信息,以XML格式。這個(gè)用來識(shí)別查詢是語句還是代碼模塊實(shí)行非常有用。

-- Test it using a stored procedure CREATE PROCEDURE tempPerson AS BEGINSET NOCOUNT ON;SELECT BusinessEntityID, Title, FirstName, MiddleName, LastName, SuffixFROM Person.PersonORDER BY LastName, FirstName, MiddleName; END GO EXEC dbo.tempPerson;

重新運(yùn)行后,我們?cè)俅蝸砜慈罩尽?/p>

插圖11.8:當(dāng)通過存儲(chǔ)過程運(yùn)行SELECT語句,會(huì)包含T-SQL堆棧信息

其它信息包含XML片段,包含引起審核日志條目的一些信息,架構(gòu)和存儲(chǔ)過程名。

寫自定義審核信息

對(duì)每類事件,你不限于把默認(rèn)信息寫入日志條目。你也可以創(chuàng)建用戶自定義審核事件,它讓你寫入任何你想寫的東西。代碼11.6展示了這個(gè)方法。當(dāng)審核規(guī)范(不管服務(wù)器還是數(shù)據(jù)庫)被停用時(shí),你才可以修改它。因此代碼首先停用它,然后它添加使用USER_DEFINED_AUDIT_GROUP的TestSQLServerAuditSpec到審核規(guī)范,并立即啟用它。最后一行代碼使用sp_audit_write系統(tǒng)存儲(chǔ)過程來寫入一些信息到審核日志。

USE master; GOALTER SERVER AUDIT SPECIFICATION TestSQLServerAuditSpecWITH (STATE = OFF); GOALTER SERVER AUDIT SPECIFICATION TestSQLServerAuditSpecADD (USER_DEFINED_AUDIT_GROUP)WITH (STATE = ON); GO-- Write some custom audit information EXEC sp_audit_write 9999, 1, N'Something in SQL Server succeeded!'

代碼11.6:使用USER_DEFINED_AUDIT_GROUP操作類型來寫自定義審核信息到服務(wù)器審核規(guī)范

當(dāng)然,你也可以用SSMS的可視化用戶界面來修改服務(wù)器審核規(guī)范。

如果你執(zhí)行剛才的代碼并查看日志,你會(huì)看到如插圖11.9的信息。你還是會(huì)看到審核事件的上下文,包括引起事件的T-SQL語句,但在底部,你會(huì)看到用戶定義的信息。

插圖11.9:包含用戶自定義信息的審核日志條目

  提示:如果USER_DEFINED_AUDIT_GROUP服務(wù)器審核規(guī)范停用的話,SQL Server會(huì)忽略sp_audit_write。

篩選審核事件

SQL Server也包含篩選寫入審核日志事件的能力,這個(gè)和擴(kuò)展事件使用同樣的篩選機(jī)制。篩選給你顆粒度的控制,SQL Server寫入審核日志的內(nèi)容。但是SQL Server還是為你在規(guī)范里定義的事件生成所有的日志條目,然后使用篩選來覺得是否寫入事件到日志,理解這個(gè)非常重要。因此你還是有大量的日志事件生成,即使這些條目不寫入日志。這就是說還是為特定的對(duì)象創(chuàng)建審核事件,而不是篩選它們。

現(xiàn)在假設(shè)你想創(chuàng)建一個(gè)審核,記錄特定類型的所有事件,除用特定登陸關(guān)聯(lián)之外。代碼11.7第一部分在AdventureWorks2012數(shù)據(jù)庫里創(chuàng)建carol登錄和登錄的用戶。然后使用SUSER_ID方法獲得新用戶的主體ID(這里是267)。然后第二部分創(chuàng)建一個(gè)服務(wù)器審核使用WHERE子句篩選主體ID不為267的事件,并啟用服務(wù)器審核。現(xiàn)在carol在數(shù)據(jù)庫里有自由領(lǐng)域,在服務(wù)器審核事件里是安全的。

CREATE LOGIN carol WITH PASSWORD = 'GEP2zYDt+5Cqw'; CREATE USER carol FOR LOGIN carol; SELECT SUSER_ID('carol');-- Part 2: Create the server audit -- Change principal id from 307 based on SUSER_ID from previous statement USE master; GOCREATE SERVER AUDIT FilterAuditTO APPLICATION_LOG WITH ( QUEUE_DELAY = 1000,ON_FAILURE = CONTINUE ) WHERE server_principal_id <> 267;ALTER SERVER AUDIT FilterAudit WITH (STATE = ON); GO

代碼11.7:在AdventureWorks2012數(shù)據(jù)庫里創(chuàng)建一個(gè)登錄和用戶,然后創(chuàng)建除這個(gè)用戶外的服務(wù)器審核

你也可以只用審核屬性對(duì)話框篩選事件,在對(duì)象瀏覽器里右擊服務(wù)器審核,在彈出菜單里選擇屬性。選擇【Filter】頁,如插圖11.10所示。注意,這里沒有WHERE語句。

插圖11.10:使用審核屬性對(duì)話框來添加篩選到服務(wù)器審核

小結(jié)

SQL Server的審核功能,讓你為數(shù)據(jù)庫實(shí)例和數(shù)據(jù)庫范圍里的各個(gè)不同事件,記錄日志。你可以使用SSMS里的用戶圖形界面或T-SQL代碼來創(chuàng)建不同審核對(duì)象,有很多選項(xiàng)來完成,例如篩選記錄,寫自定義信息到日志,和查看T-SQL的堆棧信息。審核是SQL Server一個(gè)重要的安全功能,在你的數(shù)據(jù)庫里幫你找出可疑的活動(dòng),這樣的話你可以消除掉你數(shù)據(jù)的安全漏洞。

原文鏈接

http://www.sqlservercentral.com/articles/Stairway+Series/130498/

總結(jié)

以上是生活随笔為你收集整理的SQL Server安全(11/11):审核(Auditing)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。