SQL Server 的最佳实践 - 设置对繁忙网站上的操作进行审核

SQL Server 的最佳实践 - 设置对繁忙网站上的操作进行审核

我有一个非常繁忙的网站。用户可以创建多种类型的内容,然后可以对这些内容进行投票、举报、管理员启用/禁用等。我想启用对网站上执行的所有操作的审核。

我使用的数据库是 SQL Server 2005。我有两个选择。第一个是单个大表,其中包含审计屏幕所需的大部分详细信息,即内容片段在此表中重复,以消除与其他表的连接。第二个解决方案是为每种类型的内容设置单独的审计表。例如,这使得检索用户的审计日志变得更加复杂,因为他们可能涉及许多不同类型的内容,因此我需要从许多不同的表中检索数据。

因此,这似乎是表大小和查询简单性之间的权衡。这里有任何经验法则吗 - 或者也许哪种方法更好是显而易见的?

答案1

这并不能完全回答您的问题,但该文档非常有用,阅读后您将受益匪浅。Microsoft 为 SQL Server 2008(我知道,不是 2005)编写了一份审计和合规性指南,其中包含大量有关该主题的有用信息:

http://www.microsoft.com/downloads/details.aspx?FamilyId=6E1021DD-65B9-41C2-8385-438028F5ACC2&displaylang=en

您所描述的情况非常适合使用 SQL Server 2008 的变更数据捕获功能,它可以自动捕获您想要管理的数据。但不幸的是,它只适用于企业版,这意味着它并不便宜。如果您想避免重新发明轮子,这是最佳选择。

但当你说“网站非常繁忙”时,这会引起警觉。这些技术中的任何一种,即使是你自己开发的技术,都不会是低开销的。

相关内容