【问题标题】:SQL Server Message Broker - External ActivationSQL Server 消息代理 - 外部激活
【发布时间】:2010-11-26 10:34:38
【问题描述】:

我在受限网络中有一个 Sql Server。我需要以某种方式从外部获取数据。

我想利用 Message Broker。我的想法是外部数据库将消息放在队列上,然后我需要一个位于受限 LAN 内部的服务来侦听(轮询?)这些消息,然后对它们采取行动。 我不能让外部队列在受限 LAN 中启动正常的代理对话。

我的问题是我是否应该查看代理外部激活器以坐在受限 LAN 内并侦听新消息然后对其采取行动?有没有人有这方面的经验。外部激活器的文档/示例非常薄,消息代理尚不支持独白。

msmq 是更好的选择吗?

【问题讨论】:

  • 局域网的限制程度如何?外部db可以和里面的sql server建立TCP连接吗?
  • 不,这是不允许的。它无法发起对话(或者至少这是我们正在努力的方向,安全准则是模糊的)

标签: sql-server msmq service-broker messagebroker


【解决方案1】:

我的建议是允许 Service Broker 将消息一直传递到受限局域网内的 SQL Server 实例。这将需要受限 LAN 允许传入连接(允许内部服务器侦听和接受)。 MSMQ 也不例外,MSMQ 端口必须在受限 LAN 中打开。

如果您想在受限 LAN 中使用专用进程来“获取”内部数据,那么您必须确保外部服务器“获取”和内部服务器写入之间的事务一致性:这两个操作必须注册到分布式事务和 DTC 协议本身需要被允许渗透到受限 LAN。所以在受限局域网中,仍然需要打开一些端口。

您的 LAN 安全设计人员需要了解的是,Service Broker 连接不是 Transact-SQL 连接。 Service Broker 使用仅允许交换 Service Broker 消息的专用协议。所有流量都使用 RC4 或 AES 加密进行加密和保护。 SSB 加密符合 FIPS。允许内部 SQL Server 的 Service Broker 流量可能是允许来自外部服务器的数据到达安全服务器的最安全方式。在 Service Broker 网络中,没有“客户端”和“服务器”的概念,并且无法设计仅允许在一个方向上连接的网络(例如,与 HTTP 不同,HTTP 可以设计为从内部连接到外部,但不能以其他方式连接)。 SSB 网络要求所涉及的两台机器能够相互连接,因为响应消息可能会在长时间延迟(数小时、数天,考虑备份队列的情况下,因此需要很长时间才能处理消息和响应已发送)。保持连接打开数天以期待响应是不可行的,因此消息的接收者必须能够连接回发送者以传递响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    相关资源
    最近更新 更多