繁体   English   中英

应用程序用户跟踪的SQL Server审核替代方案

[英]SQL Server Auditing Alternatives with Application User Tracking

我正在寻找一种审计解决方案,该解决方案可以完全执行“更改数据捕获”(CDC)的工作,但我还需要它来跟踪进行更改的应用程序用户。 我目前正在使用SQL Server 2012 Enterprise,今年晚些时候可能会升级到2014。

我们已经有一个利用Delete,Insert和Update触发器的审计解决方案,但是一些新的要求可能会迫使我们更新每个审计触发器和相应的审计表。 考虑到多年来我们在使用该解决方案时遇到的种种问题,这似乎是重新评估和替换该解决方案的好时机。

为了让您了解我目前正在使用(并且可能能够利用)什么,我们使用存储过程(ConnectionInitialize)将带有SPID的用户ID存储在表(ApplicationUser)中,然后删除该行完成删除,插入和更新操作后,使用另一个存储过程(ConnectionReset)。

在使用CDC的过程中,我考虑将触发器添加到cdc.lsn_time_mapping表之类的东西,但是我找不到找到将LSN映射回所使用的SPID(以及用户ID)的方法。 这也带来了其他一些问题,因为CDC总是落后一点。

我稍微看了一下SQL Server审核,但这带来了一些挑战。 我们正在使用透明数据加密(TDE)来满足我们的一些安全要求,但是SQL Server审核似乎需要一种单独的加密策略。 那,我对列比对实际的SQL语句更感兴趣。 即使这样,这些对我来说都不算是大难题,所以我仍在调查中。

鉴于我要完成的工作,是否有人有任何反馈或建议?

CDC本身不满足要求。 原因是CDC仅捕获对数据的更改,而不捕获所做更改的任何基础上下文。 但是,如果您愿意用一些审核列标记数据,则可以得到所需的内容。 基本思想是,您将一列添加到表中(或者,如果由于某种原因而无法修改实际表,则将其添加到其他表中),并用上次修改记录的用户填充该列(操作起来非常简单)插入/更新触发器)。 一旦这是实际数据,就可以使用它,但是您需要使用它(CDC是一种可能的机制)。

答案较晚,但希望有用。

有一个第三方工具ApexSQL Audit ,可以满足您的要求。 我以前的公司使用它已有多年了,他们对此感到满意。

您可以阅读一篇有用的比较文章 ,以找到有关CDC和审核工具的审核数据,审核机制,完整性保护等更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM