SQL Server Audit稽核(記錄)功能/policy原則(政策)

之前Trigger部份可以在insert、update、delete上輔助紀錄
但是沒辦法在Select中執行紀錄
若某日想查詢「誰」在「什麼時候查」了資料
這時可以動用到「稽核」的功能

翻譯叫稽核,不過比較像紀錄



程式碼:

--建出伺服器層級的稽核-----------------------------
USE master

CREATE SERVER AUDIT 我的稽核結果
TO APPLICATION_LOG --應用程式紀錄檔、安全性、檔案3個可以選
WITH
( QUEUE_DELAY = 1000 --延遲1秒
 ,ON_FAILURE = SHUTDOWN --當無法紀錄,關閉SQL Server
)
GO

--建出資料庫層級的稽核-----------------------------
USE 練練

CREATE DATABASE AUDIT SPECIFICATION [查過巨巨及匠匠]
FOR SERVER AUDIT [我的稽核結果]
ADD (SELECT ON OBJECT::[dbo].[匠匠] BY [public]),
ADD (SELECT ON OBJECT::[dbo].[巨巨] BY [public])
GO

--此筆記錄將會被記下
SELECT * FROM 巨巨

至於要如何看呢?
在WINDOWS下:控制台\所有控制台項目\系統管理工具
中有個事件檢視器,以上指令會紀錄在其中




至於原則部份比較像是一個規範
例如我想要新新表中,新建的View都要"新"開頭
且要結構挷定,用原則就能達成
這邊用原始指令頗複雜的,所以用圖型化界面展示










最後一個有四個選項

視需要:由資料庫管理人員設定需要的時間
按排程時間:定時檢測此原測,如1個禮拜
變更時僅限紀錄:只紀錄
變更時避兔:不準做

留言

熱門文章