如何使用 Microsoft Stream Insight 监控 SQL 服务器中的审核日志?

How can I use Microsoft Stream Insight to monitor Audit Logs in SQL Server?

听说 Microsoft Stream Insight 很强大,每秒可以处理 5k 个事件。我们在 SQL 服务器数据库中有敏感数据。我们启用了 SQL 审计日志。函数 sys.fn_get_audit_file('auditlogfile') 将显示审计日志文件的所有内容。我在 Internet 上看到过一些示例,其中 StreamInsight 仅读取 CSV 格式的历史数据或生成了一些模拟事件。如何使用 StreamInsight 永久监控 sql 审计日志并将捕获的日志存储在 SQL 服务器 table 中。我可以使用纯 C#.NET 或 SSIS 来完成,但我们的经理对 StreamInsight 印象深刻,以至于他非常希望实现它。

几年没用过StreamInsight了,可能有点生疏了。

如果您要使用 StreamInsight,作为开发人员,您需要创建任何需要的输入和输出适配器。对于您的情况,您需要找到一种机制 reading/parsing 将审核日志记录到自定义事件 (IObservable) 中。在输出方面,您需要创建一个输出适配器 (IObserver),它将数据写入所需的 SQL table。我以前写过一个通用的 SQL 输出适配器,它并不难。

另一方面,StreamInsight 中的事件有最大大小限制,为 16kb。

希望对您有所帮助。