【问题标题】:Private Key issue in Service BrokerService Broker 中的私钥问题
【发布时间】:2010-11-04 07:51:51
【问题描述】:

我们正在尝试按照 MSDN 中的教程通过 Service Broker 在一个 SQL 引擎中的两个 SQL 实例之间进行对话。 为了简单起见,我们发送 Encryption = OFF 的对话框,因此我们不需要处理 Master key、Certificate... 并且它在本地工作站中工作。

DECLARE @InitDlgHandle UNIQUEIDENTIFIER;

声明@RequestMsg NVARCHAR(100);

开始交易;

开始对话框@InitDlgHandle FROM SERVICE [//InstDB/2InstSample/InitiatorService] TO SERVICE N'//TgtDB/2InstSample/TargetService' 合同上 [//BothDB/2InstSample/SimpleContract] 和 加密 = 关闭;

SELECT @RequestMsg = N'目标服务的消息。';

发送对话@InitDlgHandle 消息类型 [//BothDB/2InstSample/RequestMessage] (@RequestMsg);

选择@RequestMsg AS SentRequestMsg;

提交交易; 去吧

然而,在移动到服务器后,使用相同的脚本,在 initDB 发出消息后,目标数据库在 SQL 跟踪中一直显示“找不到私钥,消息无法传递”。

我的问题是,既然我们设置了加密 = OFF,为什么目标数据库显示缺少证书?

我们使用 SQL 2005 SP2 ,Windows 2003

感谢任何输入。

【问题讨论】:

  • 如果你真的想知道“为什么?”,那么我很确定 Remus 是地球上可能真正知道的 6 个人之一。希望他看到这一点...仅供参考,Service Broker 至少有十几个这些未记录(或记录非常模糊)的谜团,而不是像 SQLCLR 等广泛普及的功能,MS 没有太多关于如何或为什么的 inof这些事情应运而生。他们只是。
  • 在两个不同的 SQL 实例上创建代理端点时,您是如何设置传输安全性的? Windows 身份验证还是基于证书的?如果可以的话,提供一个脚本。

标签: sql-server sql-server-2005 service-broker


【解决方案1】:

谈到聚会迟到...
以前没看过这个帖子。我不知道是否仍然有任何相关性,但可能的原因如下:

REMOTE SERVICE BINDING 的存在将胜过 ENCRYPTION = OFF。这是为了允许将开发人员职责与管理员职责分开。如果应用程序需要加密,则开发人员指定 ENCRYPTION = ON 并且管理员必须提供远程服务绑定。如果应用程序不需要加密,则开发人员指定 ENCRYPTION = OFF,并且如果部署站点决定需要加密,即使应用程序不需要,管理员可以提供远程服务绑定.

可以在我的网站上找到full description of how dialog security and authentication works

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 2011-07-06
    • 2020-04-07
    • 2013-01-07
    • 2017-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多