保护订阅服务器

适用于:SQL ServerAzure SQL 数据库

合并代理和分发代理连接到订阅服务器。 这些连接可在 SQL Server 登录或 Windows 登录上下文环境中建立。 在遵循授予必要的最小权限并且保护所有密码的存储的原则下,为这些代理提供合适的登录名十分重要。 有关每个代理所需权限的信息,请参阅 Replication Agent Security Model

注意

对于快照复制和事务复制,Azure SQL 托管实例可以是发布服务器、分发服务器和订阅服务器。 对于快照复制和事务复制,Azure SQL 数据库中的数据库只能是推送订阅服务器。 有关详细信息,请参阅使用 Azure SQL 数据库Azure SQL 托管实例进行事务复制。

分发代理

可以是每个订阅一个分发代理(独立代理,对于新建发布向导中创建的发布是默认设置),也可以是每个发布数据库和订阅数据库对一个分发代理(共享代理)。 T

若要为推送订阅指定连接信息,请参阅创建推送订阅

若要为请求订阅指定连接信息,请参阅创建请求订阅

合并代理

每个合并订阅都有自己的合并代理,此合并代理同时连接发布服务器和订阅服务器并对它们进行更新。

若要为推送订阅指定连接信息,请参阅创建推送订阅

若要为请求订阅指定连接信息,请参阅创建请求订阅

立即更新订阅

当配置立即更新订阅时,需要在与发布服务器建立连接的订阅服务器上指定一个帐户。 连接用于在订阅服务器上激发的触发器,这些触发器用于将更改传播到发布服务器。 有三种连接类型可以选择:

  • 复制创建的链接服务器;此连接是用配置时所指定的凭据建立的。

  • 复制创建的链接服务器;用在订阅服务器上做更改的用户的凭据建立连接。

  • 已定义的链接服务器或远程服务器。

重要

若要指定连接信息,请使用存储过程 sp_link_publication (Transact-SQL)。 还可以使用新订阅向导的 “用于可更新订阅的登录名” 页,该页可调用 sp_link_publication。 在某些情况下,如果订阅服务器运行的是 SQL Server 2005 (9.x) Service Pack 1 (SP1) 或更高版本,而发布服务器运行的是早期版本,则该存储过程可能会失败。 如果存储过程在上述情况下失败,请将发布服务器升级至 SQL Server 2005 (9.x) SP1 或更高版本。

有关详细信息,请参阅创建事务发布的可更新订阅查看和修改复制安全性设置

重要

对于指定的连接帐户,只能授予对复制功能在发布数据库中创建的视图插入、更新和删除数据的权限,而不应授予任何其他权限。 对于发布数据库中的视图(名称格式为 syncobj_<HexadecimalNumber>),请将其权限授予在每个订阅服务器上配置的帐户。

排队更新订阅

当配置排队更新订阅时,请谨记以下两个与安全性相关的方面:

  • 每个分发服务器只有一个队列读取器代理。 建议最多为每个分发服务器配置一个为排队更新订阅而启用的发布。

  • 队列读取器代理建立与分发服务器、发布服务器和每个订阅服务器的连接:

    • 运行代理并与分发服务器建立连接的账户将在创建代理时指定(如果使用新建发布向导,则代理将在创建为更新订阅而启用的发布时创建)。

    • 代理与发布服务器建立连接的帐户将在配置发布服务器的分发时指定。 指定运行代理的 Windows 帐户,或 SQL Server 帐户。

    • 代理与订阅服务器建立连接的帐户将在创建订阅时指定。

    重要

    使用 SQL Server 身份验证连接到订阅服务器,并指定一个不同帐户连接到每个订阅服务器。 如果使用请求订阅,复制始终将连接设置为使用 Windows 身份验证(对于请求订阅,复制无法访问需要使用 SQL Server 身份验证的订阅服务器上的元数据)。 这种情况下,请在配置订阅后对连接进行更改,以使用 SQL Server 身份验证。

    有关详细信息,请参阅“如何创建事务发布的更新订阅 (SQL Server Management Studio)”和查看和修改复制安全性设置

另请参阅

启用数据库引擎的加密连接(SQL Server 配置管理器)
复制安全最佳做法
安全性和保护(复制)