如何在Azure中存储审核数据

Han*_*nno 5 auditing azure audit-trail azure-storage azure-sql-database

我们正处于设计阶段,用于在现有Web应用程序中构建审核跟踪。该应用程序在Windows Azure上运行,并使用SQL Azure数据库。

审核日志必须按用户或对象类型过滤(例如,显示用户的所有操作,或显示对对象执行的所有操作)。

我们必须选择如何存储数据,应该使用SQL Azure还是应该使用表存储?我们更喜欢表存储(更便宜​​)。

但是,表存储的“问题”是如何定义分区键。我们的SQL数据库中有数千名客户(应用程序用户),每个客户都有自己的租户。使用租户ID作为分区键还不够具体,因此我们必须在分区键中添加一些内容。因此存在一个问题:给定过滤要求,我们可以在分区键中添加用户ID以简化用户过滤,或者可以添加对象ID以简化按对象过滤。

因此,我们看到两种可能的解决方案:
-使用SQL Azure代替表存储
-使用表存储并使用具有不同分区键的两个表,这意味着我们复制了所有条目

有什么想法对我们的情况最好的方法是什么?还有其他更好的解决方案吗?

Gop*_*lla 2

Azure 上的 DocumentDB 可能值得考虑。 https://azure.microsoft.com/en-us/documentation/articles/documentdb-use-cases/ 您可以将审计跟踪作为 JSON 文档存储在 DocDB 中(用户、活动、对象字段,并且可以对所有字段建立索引)