0

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

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

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

msmq 是更好的选择吗?

4

1 回答 1

2

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

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

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

于 2009-09-09T17:39:43.780 回答