簡體   English   中英

如何使用SQL Server審核.net應用程序中的所有更改

[英]How to audit all changes in a .net application with SQL Server

我有一個使用EF的.net應用程序,主要是SQL Server 2008,但有幾個客戶使用2005.在數據庫中有幾百個表。 我需要審核這些表的選擇以記錄所有數據插入/更新/刪除。 我正在考慮使用這些表的副本來記錄所有更改以及日期時間和用戶名,然后在實際表上觸發,以將數據更改插入到相關的審計表中。 這是解決這個問題的最好方法嗎? 觸發器是最好的方式還是我應該使用EF? 我想的只有一個審核表,但我認為它可能會很快失控。

審核SQL Server並非易事,尤其是當您需要支持舊版本的SQL Server時。

  • 使用DbContext跟蹤更改。 這會增加你的應用程序的開銷,並且(正如你已經注意到的)將很容易成為一場噩夢(鍵值不能擴展,歷史表的結構更改需要調整(例如,如何反映已刪除的列) )

  • CDC - 如果您的SQL服務器支持CDC,這是一個不錯的選擇,對您的應用程序產生的影響較小

  • 審計SQL Server等第三方選項您需要調查他們是否滿足您的需求

編輯: CDC在SQL 2005中不可用

另請查看: http//doddleaudit.codeplex.com/

我們正在使用它來審核我們產品中的數據庫更改。 您也可以輕松修改它以滿足您的需求。

從SQL Server 2008開始,您可以使用一些內置功能來實現您想要的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM