我正在寻找一个审计解决方案,确切地做了更改数据捕获(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