我正在尋找一個審計解決方案,確切地做了更改數據捕獲(CDC)的工作,除了我需要它也跟蹤進行更改的應用程序用戶。我目前正在使用SQL Server 2012 Enterprise,並可能在今年晚些時候升級到2014年。SQL Server審計替代方案與應用程序用戶跟蹤
我們已經有一個利用Delete,Insert和Update觸發器的審計解決方案,但是一些新的需求可能會迫使我們更新每個審計觸發器和相應的審計表。鑑於多年來我們針對該解決方案遇到的各種問題,這似乎與任何重新評估和潛在替代解決方案一樣好。
爲了讓您瞭解我目前正在使用哪些內容(並且可以利用這些內容),我們使用存儲過程(ConnectionInitialize)在表中存儲具有SPID的用戶標識(ApplicationUser),然後我們在完成刪除,插入和更新後,使用另一個存儲過程(ConnectionReset)刪除行。
我們是否使用CDC,我研究了添加一個類似於cdc.lsn_time_mapping表的觸發器,但是我找不到一種方法將LSN映射回SPID(因此是用戶ID)正在使用。這也表明CDC總是稍微落後一些其他問題。
我看了一下SQL Server Audit,但是這提出了一些自己的挑戰。我們使用透明數據加密(TDE)來安撫我們的一些安全需求,但是SQL Server Audit看起來需要單獨的加密策略;而且我對列更感興趣,而不是實際的SQL語句。即使如此,這些對我來說也不是交易破壞者,所以我仍在研究它。
鑑於我試圖完成的任何人有任何反饋或建議?
你有沒有嘗試過使用觸發器和CDC在一起。在表格中放置一列,並在存在改變時使用觸發器存儲SPID,然後使用CDC檢索到底是誰做了什麼。 –
這與我們現有的審計有些類似,我們目前在所有表中都有70多個觸發器來執行此操作。我們需要改變我們所有的表格和所有這些觸發器來獲得這個特定的解決方案。雖然可行,不太可能。我希望有一站式的解決方案,但看起來好像不太可能!我們曾想過使用CDC的事務ID和應用程序ID的映射表,任何人試過這個? – Wade