SQL Server 審核(Audit)-- 建立資料庫層級的審核

來源:互聯網
上載者:User

標籤:audit   審核   審核組件   審核層級   伺服器審核規範   

SQL Server 審核(Audit)-- 建立資料庫層級的審核

 

任務1:建立審核


步驟1開啟SSMS,登入到指定的執行個體,展開“Security”,“Audits”節點。

 

步驟2在“Audits”節點上,右鍵選擇“New Audit…”選項。

 

步驟3在“Create Audit”視窗,輸入以下的參數。

? 在“Audit name”輸入Audit-AdventureWorks2012-Create/Alter/Drop。

? 在“Audit destination”選擇“File”

? 在“File path”輸入D:\MSSQL\DATA\Audit_logs。

 

步驟4單擊“OK”完成設定。

 

650) this.width=650;" title="clip_image001" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image001" src="http://s3.51cto.com/wyfs02/M00/57/84/wKiom1ScuxiCmJT9AAPztowP4GY469.jpg" border="0" height="680" />

 

步驟5右鍵點擊剛剛建立的審核“Audit-AdventureWorks2012-Create/Alter/Drop”,選擇“Enable Audit”選項。

 

650) this.width=650;" title="clip_image002" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image002" src="http://s3.51cto.com/wyfs02/M01/57/84/wKiom1ScuxmyqAgxAAC2NzWrG_c744.jpg" border="0" height="253" />

 

 

任務2 :建立資料庫層級的審核規範 – 監控資料庫物件的建立、刪除與修改。


步驟1在“Object Explorer”視窗,展開“Databases”,“AdventureWorks2012”,“Security”,“Database Audit Specifications”節點。

 

650) this.width=650;" title="clip_image003" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image003" src="http://s3.51cto.com/wyfs02/M01/57/84/wKiom1ScuxnyDJ8NAADfJrBfTig035.jpg" border="0" height="307" />

 

步驟2在“Database Audit Specifications”節點,單擊右鍵選擇“Create Database Audit Specification”選項。

 

步驟3在“Create Database Audit Specification”視窗,輸入以下參數。

l 在“Name”輸入DatabaseAuditSpecification-Object-Create/Alter/Drop。

l 在“Audit”選擇之前建立的審核對象“Audit-AdventureWorks2012-Create/Alter/Drop”。

l 在“Actions”地區中“Audit Action Type”下的第一行,選擇“SCHEMA_OBJECT_CHANGE_GROUP”。

 

650) this.width=650;" title="clip_image004" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image004" src="http://s3.51cto.com/wyfs02/M02/57/84/wKiom1ScuxqzMCgFAAP09cOOs2A510.jpg" border="0" height="679" />

 

“SCHEMA_OBJECT_CHANGE_GROUP”是屬於資料庫層級的審核操作組,在架構上執行CREATE、ALTER和DROP操作時,就會引發這個事件。

 

步驟4單擊“OK”按鈕,完成設定。

 

步驟5按右鍵剛才建立的資料庫審核規範“DatabaseAuditSpecification-Object-Create/Alter/Drop”,選擇“Enable Database Audit Specification”選項。

 

650) this.width=650;" title="clip_image005" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image005" src="http://s3.51cto.com/wyfs02/M00/57/84/wKiom1Scux6yYYXsAACzuTSshGA481.jpg" border="0" height="253" />

 

 

任務3 :測試審核功能 – 建立、修改與刪除資料庫物件。


步驟1開啟SSMS,單擊“New Query”執行以下代碼,在資料庫AdventureWorks2012建立、修改與刪除資料庫的對象。

 

USE AdventureWorks2012GO--Create Database ObjectCREATE TABLE T1(Col1 int not null primary key)GOCREATE VIEW V1 AS SELECT * FROM T1GOCREATE SYNONYM SYN1 FOR T1GOCREATE FUNCTION FUN1(@InParm int) RETURNS int AS BEGIN RETURN @InParm ENDGOCREATE PROCEDURE PROC1(@InParm int) AS BEGIN SET @InParm = 0 ENDGOCREATE TRIGGER TRIG1 ON T1 AFTER INSERT AS RAISERROR(‘This is a dummy table‘,16,10)GO--Alter Database ObjectALTER TABLE T1 ADD Col2 varchar(32)GOALTER PROC PROC1 AS SELECT 1GO--Drop Database ObjectDROP TRIGGER TRIG1GODROP PROCEDURE PROC1GODROP FUNCTION FUN1GODROP SYNONYM SYN1GODROP VIEW V1GODROP TABLE T1GO

 

 

任務4 :使用記錄檔查看器閱讀稽核線索。


步驟1展開“Security”,“Audits”節點。

 

步驟2在剛才建立的“Audit-AdventureWorks2012-Create/Alter/Drop”對象上,右鍵選擇“View Audit Logs”。

 

步驟3在“Log File Viewer”視窗左上方的“Select logs”地區中,確認有勾選“Audit Collection”,“Audit-AdventureWorks2012-Create/Alter/Drop”。並用以下方式來閱讀所記錄的審核心數據。

 

650) this.width=650;" title="clip_image006" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image006" src="http://s3.51cto.com/wyfs02/M02/57/82/wKioL1Scu86Bsh8SAAccZDsMlHA393.jpg" border="0" height="681" />

 

 

l 在右邊“Log file summary”地區內,在“Action ID”地區中,分別點擊“CREATE”、“ALTER”、“DROP”等操作類型。

l 在“Class Type”顯示所記錄的各類對象“TABLE”、“VIEW”、“STORED PROCEDURE”等資料庫物件。

l 在下面的“Statement”地區,可以看到所記錄的程式碼。

l 取得發生事件的日期與時間,可能是利用的SQL Server 2008之後新提供的日期時間函數SYSUTCDATETIME()。回傳的資料類型是datetime2,內容值包含執行SQL Server執行個體的伺服器的日期和事件。而這個日期與時間是以國際標準時間(Coordinated Universal Time:UTC)時間格式回傳,此函數將取回伺服器上的格林威治時間(Greenwich Mean Time:GMT),也就是落後北京時間標準8小時。


備忘:datetime2是SQL Server 2008之後新增的資料類型,包含了日期資料,並結合以24小時製為基礎的時間。Datetime2可視為既有的datetime資料類型的擴充,它具有較大的日期範圍、較精確的小數有效位元和選擇性的使用者指定有效位元。日期範圍可以從公元1年1月1日到公元9999年12月31日,時間範圍可以到00:00:00到23:59:59.9999999,精確度為100ns(1ns=10的負九次方秒)。

 

採用格林威治時間(GMT)來記錄日期時間資料,對於DBA而言,若擁有位於不同時區的資料庫伺服器時,這是一個將日誌的時間標準化的作法。但對於非格林威治時間(GMT)時區的使用者而言,例如:北京時區是(GMT+08:00),可能是個困擾。在接下來的實踐中,將使用T-SQL函數fn_get_audit_file來分析與查看稽核線索的資料,就可以將格林威治時間(GMT)轉為適合的時區的資訊。

 

 

任務5 :改用“Windows 應用程式事件記錄檔檔案”來記錄審核資訊。


步驟1在“Security”,“Audits”節點上的“Audit-AdventureWorks2012-Create/Alter/Drop”對象上,右鍵禁用審核。

 

650) this.width=650;" title="clip_image007" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image007" src="http://s3.51cto.com/wyfs02/M02/57/82/wKioL1Scu8-z3OlXAAC3CPdpzPk315.jpg" border="0" height="252" />

 

若要調整“Audits”對象的屬性,必須要先禁用此“Audits”之後才能進行調整,否則將產生錯誤資訊,無法調整屬性。

 

步驟2單擊被禁用的審核對象,單擊滑鼠右鍵選擇“Properties”選項。

 

步驟3在“Audit Properties”視窗中的“Audit destination”框,下拉選擇“Application Log”。

 

650) this.width=650;" title="clip_image008" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image008" src="http://s3.51cto.com/wyfs02/M00/57/82/wKioL1Scu9CClDtiAAIY9nj8W88070.jpg" border="0" height="677" />

 

步驟4單擊“OK”按鈕,完成屬性的調整。

 

步驟5單擊被禁用的審核對象,右鍵再啟用審核。

 

步驟6再次執行之前在資料庫AdventureWorks2012建立、修改與刪除資料庫物件的T-SQL代碼。

 

 

任務6 :查看存放在“Windows 應用程式事件記錄檔檔案”內的審核資訊。


步驟1展開“Security”,“Audits”節點。

 

步驟2在剛才建立的“Audit-AdventureWorks2012-Create/Alter/Drop”對象上,右鍵選擇“View Audit Logs”。

 

步驟3在“Log File Viewer”視窗左上方的“Select logs”地區中,確認有勾選“Windows NT”,“Application”。

 

步驟4在右邊的“Log file summary”地區,即可查看所記錄到資料。

 

650) this.width=650;" title="clip_image009" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image009" src="http://s3.51cto.com/wyfs02/M00/57/84/wKiom1ScuyOjFB6zAAY5aRJDSdE103.jpg" border="0" height="685" />

 

採用“Windows應用程式事件記錄檔檔案”方式來存放稽核線索,具備以下特性。

l 審核內部所記錄的日期時間部分,仍以格林威治時間(GMT)來記錄。

l 在應用程式事件記錄檔檔案所記錄的日誌時間,已經轉為資料庫伺服器所在時區的日期時間。

l 審核所記錄到資料全部存放在訊息地區內,其“statement”部分,有記錄所執行的T-SQL程式碼。但這在閱讀與後續分析上,勢必會增加困擾。若與存放到二進位檔案的審核目標比較起來,二進位檔案存放的稽核線索已經分類在各資料行中,如此一來,不但增加可讀性,也容易進行篩選與分析。

 

若使用Windows的事件檢視器來閱讀所記錄到的審核心數據,可以在“Application”頁查看所記錄的資訊。

 



650) this.width=650;" title="clip_image010" style="border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;" alt="clip_image010" src="http://s3.51cto.com/wyfs02/M00/57/82/wKioL1Scu9KCjEL6AAP7yqi-VmY603.jpg" border="0" height="618" />

本文出自 “SQL Server Deep Dives” 部落格,請務必保留此出處http://ultrasql.blog.51cto.com/9591438/1596119

SQL Server 審核(Audit)-- 建立資料庫層級的審核

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.