在本课中,你将学习如何创建链接服务器,并将数据库引擎的目标实例路由到发起程序实例。 从与目标实例在同一台计算机上运行的 Management Studio 副本运行这些步骤。
过程
创建对发起方对象的引用
复制以下代码并将其粘贴到查询编辑器窗口中。 将
FROM FILE子句更改为引用您从第 2 课中步骤 4 复制InstInitiatorCertificate.cer文件到的文件夹。 然后,运行代码以创建发起方用户并请求发起方证书。USE InstTargetDB; GO CREATE USER InitiatorUser WITHOUT LOGIN; CREATE CERTIFICATE InstInitiatorCertificate AUTHORIZATION InitiatorUser FROM FILE = N'C:\storedcerts\$ampleSSBCerts\InstInitiatorCertificate.cer'; GO
创建路由
复制以下代码并将其粘贴到查询编辑器窗口中。 将字符串 MyInitiatorComputer 更改为运行发起程序实例的计算机的名称。 然后,运行代码以创建目标服务和发起程序服务的路由,以及将 发起程序User 与发起程序服务路由关联的远程服务绑定。
以下
CREATE ROUTE语句假定目标实例中没有重复的服务名称。 如果目标实例上的多个数据库包含具有相同名称的服务,请使用BROKER_INSTANCE子句指定要打开会话的数据库。DECLARE @Cmd AS NVARCHAR (4000); SET @Cmd = N'USE InstTargetDB; CREATE ROUTE InstInitiatorRoute WITH SERVICE_NAME = N''//InstDB/2InstSample/InitiatorService'', ADDRESS = N''TCP://MyInitiatorComputer:4022'';'; EXECUTE (@Cmd); SET @Cmd = N'USE msdb CREATE ROUTE InstTargetRoute WITH SERVICE_NAME = N''//TgtDB/2InstSample/TargetService'', ADDRESS = N''LOCAL'''; EXECUTE (@Cmd); GO GRANT SEND ON SERVICE::[//TgtDB/2InstSample/TargetService] TO InitiatorUser; GO CREATE REMOTE SERVICE BINDING InitiatorBinding TO SERVICE N'//InstDB/2InstSample/InitiatorService' WITH USER = InitiatorUser; GO
相关内容
- 创建远程服务绑定 (Transact-SQL)
- CREATE ROUTE (Transact-SQL)
- 创建用户 (Transact-SQL)
- EXECUTE (Transact-SQL)
- sp_addlinkedserver(Transact-SQL)
- Service Broker 路由和网络
- 网络和远程安全性
后续步骤
你已成功配置目标数据库以支持与发起者数据库进行的 Service Broker 对话。 接下来,在发起程序数据库中开始对话,并将请求消息发送到目标服务。