【问题标题】:Audit trail using Service Broker使用 Service Broker 进行审计跟踪
【发布时间】:2012-01-31 18:11:02
【问题描述】:

寻找指针来为使用服务代理的数据库创建审计试验。我在网上看到了很多关于为所有被审计的表创建一个审计表的例子。但我正在寻找的是每个基表一个审计表,并使用服务代理来完成此任务。任何指针表示赞赏。

【问题讨论】:

  • 我想不出对于整个数据库只有一个审计表是个好主意的情况。很高兴你没有落入那个陷阱。为什么要使用服务代理而不是触发器?
  • @HLGEM - 感谢您的回复。因为我们想异步处理它。
  • 触发器本身能否在没有 SB 帮助的情况下异步处理请求?
  • 触发器是每个事务的一部分。因此,每个事务都会异步发生(您插入 1:13 而我在 1:13:01 插入将由触发器单独处理,但是插入一百万条记录的事务都将在触发器中发生一次。
  • @HLGEM - 这就是问题所在。需要异步处理具有数百万条记录的事务。毕竟它是用于审计跟踪的,在大多数情况下交易完成时不需要立即使用。

标签: sql-server-2008 sql-server-2008-r2 service-broker


【解决方案1】:

听起来很奇怪..但是你可以尝试一下:

  • 创建服务代理服务和队列(发送方和接收方)
  • 为从发送方发送到接收方服务行的所有表创建触发器,这些表来自触发器中插入和删除的表 - 可以使用“For XML”子句。要自动创建触发器,可以使用过程 sp_msForEachTable。
  • 为接收器服务制作激活程序,对这些 xml 消息执行某些操作

就是这样。你可以通过使用对话池来获得更好的性能 (here)

【讨论】:

    猜你喜欢
    • 2018-07-25
    • 2017-02-07
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2015-10-23
    • 1970-01-01
    • 2011-03-15
    相关资源
    最近更新 更多