我需要創建一個審計來跟蹤數據庫中所有表的所有CRUD事件,現在我有超過100個數據庫中的表,有沒有辦法創建包含數據庫中所有表格的規範?如何爲數據庫中的所有表設置數據庫審計規範
PS:我使用SQL Server 2008的
我需要創建一個審計來跟蹤數據庫中所有表的所有CRUD事件,現在我有超過100個數據庫中的表,有沒有辦法創建包含數據庫中所有表格的規範?如何爲數據庫中的所有表設置數據庫審計規範
PS:我使用SQL Server 2008的
找到了一種創建數據庫審計規範的方法, 寫了一個c#代碼,動態生成所有表的sql語句以及我需要的所有操作並執行結果字符串。 坦白地說,如果您爲多個表創建數據庫審計規範,嚮導提供的根本沒有任何幫助。
變化數據捕捉
可以使用由SQL Server 2008
http://msdn.microsoft.com/en-us/library/bb522489.aspx
說明中提供的變更數據捕獲功能機制這隻會做創建,更新和刪除。
觸發器和審計表
即使是100桌,你可以使用一個腳本,將生成審計表和必要的觸發器。請注意,這不是一個非常好的機制 - 它會減慢控制,除非觸發器執行完成,否則不會返回。
我有同樣的問題。答案實際上比預期的簡單,並且不需要定製的C#應用程序來生成大量的SQL來覆蓋所有表。下面的示例SQL。重要的一點是爲INSERT/UPDATE/DELETE指定數據庫和public。不需要審覈INSERT,UPDATE和DELETE DATABASE_OBJECT_CHANGE_GROUP和SCHEMA_OBJECT_CHANGE_GROUP - 請參見下面的其他注意事項:
USE [master]
GO
CREATE SERVER AUDIT [CancerStatsAudit]
TO FILE
( FILEPATH = N'I:\CancerStats\Audit\'
,MAXSIZE = 128 MB
,MAX_ROLLOVER_FILES = 64
,RESERVE_DISK_SPACE = OFF
)
WITH
( QUEUE_DELAY = 1000
,ON_FAILURE = CONTINUE
,AUDIT_GUID = '5a0a18cf-fe42-4171-ad01-5e19af9e27d1'
)
ALTER SERVER AUDIT [CancerStatsAudit] WITH (STATE = ON)
GO
USE [CancerStats]
GO
CREATE DATABASE AUDIT SPECIFICATION [CancerStatsDBAudit]
FOR SERVER AUDIT [CancerStatsAudit]
ADD (INSERT ON DATABASE::[CancerStats] BY [public]),
ADD (UPDATE ON DATABASE::[CancerStats] BY [public]),
ADD (DELETE ON DATABASE::[CancerStats] BY [public]),
ADD (EXECUTE ON DATABASE::[CancerStats] BY [public]),
ADD (DATABASE_OBJECT_CHANGE_GROUP),
ADD (SCHEMA_OBJECT_CHANGE_GROUP)
WITH (STATE = ON)
GO
NB。
其他備註:
上面的例子還包括DATABASE_OBJECT_CHANGE_GROUP和SCHEMA_OBJECT_CHANGE_GROUP。這些都包含在內,因爲我的要求是跟蹤數據庫對象的CREATE/ALTER/DROP操作。值得注意的是這些文檔是錯誤的。 https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions
上述頁面狀態DATABASE_OBJECT_CHANGE_GROUP跟蹤CREATE,UPDATE和DELETE。這是不正確的(我在SQL Server 2016測試),只能造成被跟蹤,請參閱: https://connect.microsoft.com/SQLServer/feedback/details/370103/database-object-change-group-audit-group-does-not-audit-drop-proc
事實上,跟蹤創建,更新,刪除,使用SCHEMA_OBJECT_CHANGE_GROUP。儘管上述docs.microsoft.com文檔頁面暗示這隻適用於模式,但它實際上也適用於模式中的對象。
此功能需要企業版。 – 2010-10-07 14:49:17