審計SELECT語句的SQL Server 2008 T-SQL命令

來源:互聯網
上載者:User

SQL Server 2008中的SQL審計已經變成一個一流的伺服器對象。正如前面一篇文章所提到的,現在你甚至可以審計一個要求使用SQL跟蹤或者在前面版本中的其它第三方產品的SELECT語句查詢。但是,雖然使用圖形化使用者介面對於處理小的任務是很好的,尤其是第一次學習一些東西時,但是這樣做可能是很乏味的,尤其是如果你重複相同的任務時。這篇文章將和前面的文章一樣通過同類的Transact-SQL語句使用相同的例子。如果你想審計,我們可以假設審計在資料庫中10個或者更多的表,那麼這會使你更容易地做到。我也將使用檔案系統來儲存審計對象。我們將使用CREATE SERVER AUDIT完成這個任務。

-- Create Server Audit object
USE master
CREATE SERVER AUDIT testAudit TO FILE(FILEPATH='C:\Temp\SelectAudit\')
GO

這個伺服器審計對象負責搜集你想監測的伺服器和/或者資料庫層級的行為和行為組並且在執行個體層級上建立。這也意味著如果你有很多執行個體在一個伺服器上運行,那麼你要為每個執行個體建立伺服器審計對象。接著,我們將在適當的資料庫中建立一個叫做testAudSpec的Database Audit規範,在本例中,我們將使用AdventureWorks資料庫。我們將使用CREATE DATABASE AUDIT SPECIFICATION語句來完成這個任務。

-- Create an audit specification
USE AdventureWorks
GO
CREATE DATABASE AUDIT SPECIFICATION testAudSpec FOR SERVER AUDIT testAudit
ADD (SELECT ON HumanResources.Employee BY Public)
GO

在這裡我們所作的是只建立一個Database Audit規範並把它分配到我們之前建立的伺服器審計對象中。然後,我們增添資料庫層級的可審計的行為名稱,在本例中是SELECT語句,然後捕捉所有使用者執行的查詢。你可以有多個行為或者行為組以及相關的Database Audit規範。你也可以建立一個伺服器審計規範,它可以審計伺服器層級的行為或行為組,比如跟蹤成功或失敗的登入,更改角色成員等。SQL Server審計行為組和行為的列表可以從線上說明和MSCN中得到。

由於預設情況下伺服器審計對象和Database Audit規範在建立之後都不能使用,我們需要使它們可用。要驗證它們的狀態,你可以查詢sys.server_file_audits和

sys.database_audit_specifications系統對象。is_state_enabled欄位能告訴我們它們的狀態。

-- Verify Audit objects if turned on (1 = Enabled)
USE master
SELECT is_state_enabled,* FROM sys.server_file_audits
USE AdventureWorks
SELECT is_state_enabled,* FROM sys.database_audit_specifications
GO

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.