完成实例之间的对话

适用范围:SQL ServerAzure SQL 托管实例

本教程面向不熟悉 Service Broker,但熟悉数据库概念和 Transact-SQL 语句的用户。 它通过向他们展示如何在数据库引擎的单独实例上生成和运行两个数据库之间的简单对话,从而帮助新用户入门。

学习内容

本教程基于你在 数据库间完成对话中学到的任务。 本教程介绍如何配置会话,使其在数据库引擎的两个实例之间运行。

本教程中遵循的步骤与在“完成数据库间对话”教程中遵循的步骤相同,但有以下例外情况:

  • 两个数据库位于不同的数据库引擎实例上。

  • 你将了解如何创建 Service Broker 终结点和路由,以在两个实例之间建立网络连接。

  • 前面的教程未在网络上传输消息。 因此,它们使用数据库引擎权限来协助防止对消息进行未经授权的访问。 第 3 课介绍如何创建证书和远程服务绑定来加密网络上的消息。

在本教程中,包含发起程序数据库的数据库引擎实例称为 发起程序实例。 包含目标数据库的实例称为 目标实例

本教程分为六课:

Description
第 1 课:创建目标数据库 在本课中,你将创建目标数据库以及所有不依赖于发起程序数据库的对象。 包括端点、主密钥、证书、用户、消息类型、约定、服务和队列。
第 2 课:创建发起程序数据库 在本课中,您将创建发起方数据库及其端点、主密钥、证书、用户、路由、远程服务绑定、消息类型、约定、服务和队列。
第 3 课:完成目标对话对象 在本课中,您将创建与发起方数据库存在依赖关系的目标对象。 包括证书、用户、路由和远程服务绑定。
第 4 课:开始对话 在本课中,您将启动会话并将来自发起方的请求消息发送到目标。
第 5 课:接收请求并发送回复 在本课中,您将在目标服务处接收请求消息并将答复消息发送回发起方。
第 6 课:接收答复并结束对话 在本课中,您将在发起方服务处接收答复消息并结束会话。

要求

若要完成此教程,应熟悉 Transact-SQL 语言以及如何在 SQL Server Management Studio 中使用数据库引擎查询编辑器。

必须已安装两个数据库引擎实例。 如果两个实例位于不同的计算机上,请始终从位于同一计算机上的 Management Studio 副本连接到每个实例。 例如,不要从目标计算机上的 Management Studio 副本连接到发起程序实例。

您必须具有一个在两个实例中都进行了授权的登录名。 在这两个实例中,登录名必须为 sysadmin 固定服务器角色的成员,或具有运行此教程的以下权限:

  • ALTER ANY LINKED SERVER
  • CREATE ENDPOINT
  • 至少一个CREATE DATABASECREATE ANY DATABASEALTER ANY DATABASE权限

运行每个数据库引擎实例的 Windows 帐户在另一实例中也必须为有效的登录名。

两个系统都必须安装了下列软件:

  • 任何版本的 SQL Server,但只有一个实例可以是 SQL Server Express 版本
  • SQL Server Management Studio 或 Management Studio Express
  • 支持的 Internet 浏览器

这两个系统的防火墙必须配置为启用与 UDP 端口 1434 以及 TCP 端口 1433 和 4022 的连接。 使用配置管理器工具可以确保这两个实例都允许 TCP/IP 连接,并且确保 SQL Server Browser 服务在两台计算机上都运行。