當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]介紹??? Audit是SQL Server 2008之后才有的功能,它能告訴你“誰什么時(shí)候做了什么事情”。具體是指審核SQL Server 數(shù)據(jù)庫引擎實(shí)例或單獨(dú)的數(shù)據(jù)庫涉及到跟蹤和記錄數(shù)據(jù)庫引擎中發(fā)

介紹

??? Audit是SQL Server 2008之后才有的功能,它能告訴你“誰什么時(shí)候做了什么事情”。具體是指審核SQL Server 數(shù)據(jù)庫引擎實(shí)例或單獨(dú)的數(shù)據(jù)庫涉及到跟蹤和記錄數(shù)據(jù)庫引擎中發(fā)生的事件。它的底層是基于擴(kuò)展事件(Extented Event),所以其性能和靈活性相對較好。審核數(shù)據(jù)可以輸出到審核文件、Windows安全日志和應(yīng)用程序日志。

??? Audit都需要?jiǎng)?chuàng)建一個(gè)實(shí)例級的“SQL Server審核”,然后可以創(chuàng)建從屬于它“服務(wù)器審核規(guī)范”和“數(shù)據(jù)庫審核規(guī)范”??梢岳斫狻癝QL Server審核”是審核的頂級容器,這兩個(gè)“規(guī)范”是定義要審核的具體內(nèi)容。

創(chuàng)建和使用審核的一般過程:

1. 創(chuàng)建審核并定義目標(biāo)。

2. 創(chuàng)建映射到審核的服務(wù)器審核規(guī)范或數(shù)據(jù)庫審核規(guī)范,并啟用審核規(guī)范。

3. 啟用審核。

4. 通過使用 Windows“事件查看器”、“日志文件查看器”或 fn_get_audit_file 函數(shù)來讀取審核事件。

?

實(shí)現(xiàn)

創(chuàng)建測試數(shù)據(jù)庫和數(shù)據(jù):

use?master

go

create?database?AuditTest

go

use?AuditTest

go

create?table?tb(ID?int?primary?key?,name?varchar(20),weight?decimal(10,2));

insert?into?tb?values(1,'John',70.2),(2,'Ted',80.8),(3,'Clark',75.1)

go

1.?創(chuàng)建審核和定義目標(biāo)。

創(chuàng)建審核可以用SSMS或者語句實(shí)現(xiàn)。所謂目標(biāo),就是審核輸出存到哪里,與擴(kuò)展事件的Target差不多。

對應(yīng)的語句創(chuàng)建:

--create?Server?Audit

USE?[master]

GO

CREATE?SERVER?AUDIT?[Audit-AuditTest]

TO?FILE

(?FILEPATH?=?N'D:share'

?,MAXSIZE?=?50?MB

?,MAX_FILES?=?10

?,RESERVE_DISK_SPACE?=?ON

)

WITH

(?QUEUE_DELAY?=?1000

?,ON_FAILURE?=?CONTINUE

?--AUDIT_GUID=uniqueidentifier?

)

--WHERE?object_name='tb'

GO

--Enable?Server?Audit

alter?server?audit?[Audit-AuditTest]?with?(state=on)

簡單說明一下相關(guān)參數(shù):

TO FILE:指定輸出到審核文件,也可以指定為Security Log和Application Log。?
FILEPATH:審核文件的目錄地址。

MaxSize:單個(gè)審核文件的最大容量。?
MAXSIZE:類似于Trace,指定Rollover允許最多文件數(shù)。?
RESERVE_DISK_SPACE:預(yù)先分配審核文件到MaxSize。個(gè)人推薦啟用。?
QUEUE_DELAY:指定事件發(fā)生到被強(qiáng)制審核的毫秒間隔。指定為0則為同步審核。?
ON_FAILURE :當(dāng)審核向上檔寫入數(shù)據(jù)失敗時(shí),接下來會采取的行為:CONTINUE | SHUTDOWN | FAIL_OPERATION。?
AUDIT_GUID:用于數(shù)據(jù)庫鏡像。類似Login的SID作用,鏡像會話的主庫如果有審核,則在鏡像庫創(chuàng)建對應(yīng)的審核需要指定同樣GUID。

WHERE:相當(dāng)于擴(kuò)展事件中Predicate,用于指定過濾條件。

2.?創(chuàng)建數(shù)據(jù)庫審核規(guī)范并啟用之

指定從屬于哪個(gè)SQL Server審核和定義出要審核的內(nèi)容。可以通過SSM或者語句創(chuàng)建之。下面針對測試表tb創(chuàng)建審核規(guī)范:任何人對tb表的DML和表結(jié)構(gòu)修改操作都被審核。

對應(yīng)的語句:

--Create?and?enable?Database?Audit?Specification

USE?[AuditTest]

GO

CREATE?DATABASE?AUDIT?SPECIFICATION?[DatabaseAuditSpecification-AuditTest]

FOR?SERVER?AUDIT?[Audit-AuditTest]

ADD?(SCHEMA_OBJECT_CHANGE_GROUP),

ADD?(SELECT,DELETE,INSERT,UPDATE?ON?OBJECT::[dbo].[tb]?BY?[public])

WITH?(STATE=ON)

GO

對照SSMS,參數(shù)的意義就很明白了。更詳細(xì)內(nèi)容參考:CREATE DATABASE AUDIT SPECIFICATION

審核活動類型(Audit Action Type)參考:SQL Server 審核操作組和操作

3.?啟用審核

??? SQL Server在創(chuàng)建審核和審核規(guī)范時(shí),默認(rèn)是不啟用,需要顯式啟用。在前面兩步,我已經(jīng)顯式啟用了。

4.?測試和查看審核數(shù)據(jù)

use?AuditTest

go

select?*?from?dbo.tb

where?ID=1;

update?dbo.tb

set?name='Ted_New'

where?ID=2;

alter?table?dbo.tb?alter?column?name?varchar(30);

alter?table?dbo.tb?add?newCol?varchar(20);

go

在前面目標(biāo)定義的文件中會生成一個(gè)審核文件,文件名:[SQL Server審核名稱]_[審核的GUID]_*.sqlaudit。

這個(gè)文件也可以用其它文字編輯器打,但是不便閱讀。通常使用系統(tǒng)函數(shù)sys.fn_get_audit_file讀取它。

SELECT?event_time

????,?action_id

????,?succeeded

????,?session_id

????,?session_server_principal_name

????,?object_name

????,?statement

????,?file_name

????,?audit_file_offset

from?sys.fn_get_audit_file('d:share*',default,default)

從結(jié)果可以得到:誰在什么時(shí)候做了什么。Select和Alter語句只有一條記錄。Update有兩條記錄,一條Select和一條Update。將audit_file_offset的值傳遞給fn_get_audit_file作為第三個(gè)參數(shù)值,可以實(shí)現(xiàn)從指定的offset讀取審核文件。注意:event_time輸出為UTC時(shí)間了。

當(dāng)然也可以直接查看:

5.?嘗試服務(wù)器審核規(guī)范

審核創(chuàng)建和刪除登錄,并將審核內(nèi)容記錄到應(yīng)用程序日志。

USE?[master]
GO
CREATE?SERVER?AUDIT?[Audit-AuditTest]
TO?APPLICATION_LOG
WITH
(?QUEUE_DELAY?=?1000
,ON_FAILURE?=?CONTINUE
)
GO
Alter?SERVER?AUDIT?[Audit-AuditTest]?With(State=On)
go
Create?Server?Audit?Specification?SAS_CreateDropLogin
For?Server?Audit?[Audit-AuditTest]
Add?(SERVER_PRINCIPAL_CHANGE_GROUP)
With?(State=On)
go
create?login?xx?with?password='P@ssW0rd';
drop?login?xx?;

通過Windows的事件查看器,可以查看到33205事件。個(gè)人覺得在查看數(shù)據(jù)詳細(xì)事件時(shí),使用XML格式更好理解一些。


總結(jié) SQL Server審核相對而言性能影響較少,審核粒度也非常靈活。審核是針對“事件“,回答”誰什么時(shí)候干了什么“,但對數(shù)據(jù)本身變化的跟蹤力度較弱。審核的目標(biāo)結(jié)果,無論是審核文件或者應(yīng)用程序日志,都需要另外處理和分析才能得想要的內(nèi)容。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉