第 3 课:完成目标会话对象

新建日期: 2007 年 9 月 15 日

在本课中,您将学习如何创建从数据库引擎的目标实例到发起方实例的链接服务器和路由。 请在与目标实例运行在同一台计算机上的 Management Studio 副本中执行这些步骤。

过程

创建对发起方对象的引用

  1. 复制以下代码并粘贴至查询编辑器窗口中。 将 FROM FILE 子句更改为引用在第 2 课的步骤 4 中复制 InstInitiatorCertficate.cer 文件时的目标文件夹。 然后,运行代码以创建发起方用户并获取发起方证书。

    USE InstTargetDB
    GO
    CREATE USER InitiatorUser WITHOUT LOGIN;
    
    CREATE CERTIFICATE InstInitiatorCertificate
       AUTHORIZATION InitiatorUser
       FROM FILE = 
    N'C:\storedcerts\$ampleSSBCerts\InstInitiatorCertificate.cer';
    GO
    

创建路由

  1. 复制以下代码并粘贴至查询编辑器窗口中。 将字符串 MyInitiatorComputer 更改为运行发起方实例的计算机的名称。 然后,运行代码以创建到目标服务和发起方服务的路由以及一个将 InitiatorUser 与发起方服务路由进行关联的远程服务绑定。

    以下 CREATE ROUTE 语句假定目标实例中没有重复的服务名称。 如果目标实例中的多个数据库包含同名服务,请使用 BROKER_INSTANCE 子句指定要与其进行会话的数据库。

    DECLARE @Cmd NVARCHAR(4000);
    
    SET @Cmd = N'USE InstTargetDB;
    CREATE ROUTE InstInitiatorRoute
    WITH SERVICE_NAME =
           N''//InstDB/2InstSample/InitiatorService'',
         ADDRESS = N''TCP:// MyInitiatorComputer:4022'';';
    
    EXEC (@Cmd);
    
    SET @Cmd = N'USE msdb
    CREATE ROUTE InstTargetRoute
    WITH SERVICE_NAME =
            N''//TgtDB/2InstSample/TargetService'',
         ADDRESS = N''LOCAL''';
    
    EXEC (@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
    

后续步骤

您已成功地配置了目标数据库,使其支持与发起方数据库的 Service Broker 会话。 接下来,您将在发起方数据库中开始一个会话并向目标服务发送一条请求消息。 请参阅第 4 课:开始会话

请参阅

其他资源

CREATE REMOTE SERVICE BINDING (Transact-SQL)
CREATE ROUTE (Transact-SQL)
CREATE USER (Transact-SQL)
EXECUTE (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
Service Broker 路由和网络
网络传输与远程安全机制

帮助和信息

获取 SQL Server 2005 帮助