Microsoft SQL Server 可以精细控制 Web 同步安全性的配置。 本主题提供 Web 同步配置中包含的所有组件的完整列表,以及有关在组件之间建立的连接的信息。 请尽可能使用 Windows 身份验证。
下图显示了所有可能的连接,但特定拓扑中可能不需要某些连接。 例如,仅当使用 FTP 传递快照时,才需要与 FTP 服务器的连接。
下表描述了图中所示的组件和连接。
答: 运行合并代理的 Windows 用户
在同步期间,合并代理 (A) 在订阅服务器上启动。 合并代理可以从 SQL Server 代理作业中的某个步骤或独立自定义应用程序启动。 如果合并代理是从 SQL Server 代理作业步骤启动的,则合并代理将在指定的 Windows 用户的上下文下运行。 如果未指定 Windows 用户,合并代理将在 SQL Server 代理的 Windows 服务帐户的上下文下运行。
| 帐户的类型 | 指定帐户的位置 |
|---|---|
| Windows 用户 | Transact-SQL:@job_login和@job_password是sp_addmergepullsubscription_agent的参数。 RMO(复制管理对象):SynchronizationAgentProcessSecurity的Login和Password属性。 |
| SQL Server 代理的 Windows 服务帐户 | SQL Server 配置管理器 |
| 独立应用程序 | 合并代理在运行应用程序的 Windows 用户的上下文下运行。 |
B. 连接到订阅用户
合并代理使用 Windows 身份验证或 SQL Server 身份验证连接到订阅服务器。 指定的 Windows 用户或 SQL Server 登录名必须与订阅数据库中属于dbowner固定数据库角色成员的数据库用户相关联。
注释
从 SQL Server 代理作业启动合并代理时,始终使用 Windows 身份验证。 除非显式指定 SQL Server 身份验证,否则合并代理以编程方式启动时,也会使用 Windows 身份验证。
| 身份验证的类型 | 其中指定了身份验证 |
|---|---|
| Windows 身份验证。 | 合并代理在为合并代理 (A) 指定的 Windows 用户的上下文下建立连接。 |
| 仅当指定了以下内容时,才使用 SQL Server 身份验证: RMO:SubscriberSecurityMode的值为Standard。 合并代理命令行:0 是 订阅者安全模式 的数值。 |
RMO: SubscriberLogin 和 SubscriberPassword. 合并代理命令行: -SubscriberLogin 和 -SubscriberLogin。 |
C. 连接至传出代理服务器
仅当存在限制对订阅服务器内部网络的访问的传出代理服务器时,才为此连接指定 Windows 用户。
| 身份验证的类型 | 其中指定了身份验证 |
|---|---|
| Windows 身份验证 | RMO:InternetProxyLogin 和 InternetProxyPassword 和 InternetProxyServer。 合并代理命令行: -InternetProxyLogin 和 -InternetProxyPassword 和 -InternetProxyServer。 |
D. 连接到 IIS
连接到订阅服务器并从订阅数据库提取任何更改后,合并代理向Microsoft Internet Information Services(IIS)发出 HTTPS 请求,并将数据更改作为 XML 消息上传。 合并代理必须具有 IIS 的登录权限。
| 身份验证的类型 | 其中指定了身份验证 |
|---|---|
| 如果指定以下任一项,则使用基本身份验证: Transact-SQL:sp_addmergepullsubscription_agent 的 @internet_security_mode 参数的值为 0。 对InternetSecurityMode而言,值为Standard的RMO。 合并代理命令行:将 -InternetSecurityMode 的值设为 0。 |
Transact-SQL:sp_addmergepullsubscription_agent的@internet_login和@internet_password参数。 RMO: InternetLogin 和 InternetPassword. 合并代理命令行: -InternetLogin 和 -InternetPassword。 |
| 如果指定以下任一项,则使用集成身份验证* : Transact-SQL:sp_addmergepullsubscription_agent的@internet_security_mode参数的值为1。 RMO:InternetSecurityMode 的值为 Integrated。 合并代理命令行:-InternetSecurityMode 的值为 1。 |
合并代理在为合并代理 (A) 指定的 Windows 用户的上下文下建立连接。 |
*仅当所有计算机都位于同一域中或位于具有相互信任关系的多个域中时,才能使用集成身份验证。
注释
如果使用集成身份验证,则需要委派。 建议对从订阅服务器到 IIS 的连接使用基本身份验证和 SSL。
E. 连接到发布商
SQL Server 复制监听器和合并复制协调器组件托管在运行 IIS 的计算机上。 这些组件执行以下作:
检索在“D”部分中描述的 HTTPS 请求。 连接到 IIS”。
与发布数据库建立 SQL 连接,并将上传的更改应用到发布数据库。
提取下载的更改内容,并将HTTPS响应发送回合并代理。
合并复制协调器使用 Windows 身份验证或 SQL Server 身份验证连接到发布服务器。 指定的 Windows 用户或 SQL Server 登录名必须符合以下条件:
被列入发布访问列表(PAL) 有关详细信息,请参阅保护发布服务器。
与发布数据库中的用户相关联。
| 身份验证的类型 | 其中指定了身份验证 |
|---|---|
| 如果指定以下任一项,则使用 Windows 身份验证: Transact-SQL:对于sp_addmergepullsubscription_agent的@publisher_security_mode参数,值为1。 RMO:PublisherSecurityMode 的值为 Integrated。 合并代理命令行:-PublisherSecurityMode 的值为 1。 |
合并代理在指定用于连接到 IIS(D)的 Windows 用户的上下文中与发布者建立连接。 如果发布服务器和 IIS 位于不同的计算机上,并且集成身份验证用于连接 (D),则必须在运行 IIS 的计算机上启用 Kerberos 委派。 有关详细信息,请参阅 Windows 文档。 |
| 如果指定以下任一项,则使用 SQL Server 身份验证: Transact-SQL:sp_addmergepullsubscription_agent的@publisher_security_mode参数的值为0。 RMO:PublisherSecurityMode 的值为 Standard。 合并代理命令行:-PublisherSecurityMode 的值为 0。 |
Transact-SQL:@publisher_login和@publisher_password参数在sp_addmergepullsubscription_agent中。 RMO: PublisherLogin 和 PublisherPassword. 合并代理命令行: -PublisherLogin 和 -PublisherPassword。 |
F. 连接到分发服务器
在运行 IIS 的计算机上托管的合并复制协调器也与分发服务器建立连接。 合并复制协调程序使用 Windows 身份验证或 SQL Server 身份验证连接到分发服务器。 指定的 Windows 用户或 SQL Server 登录名必须符合以下条件:
请在发布访问权限(PAL)中。 有关详细信息,请参阅保护发布服务器。
与分发数据库中的数据库用户相关联。 用户可以为
Guest用户。
快照共享通常位于分发服务器上。 有关快照共享的详细信息,请参阅“H”部分。 可以在本主题的稍后部分访问快照共享。
| 身份验证的类型 | 其中指定了身份验证 |
|---|---|
| 如果指定以下任一项,则使用 Windows 身份验证: Transact-SQL:sp_addmergepullsubscription_agent 的 @distributor_security_mode 参数值为 1。 RMO的DistributorSecurityMode值为 Integrated. 合并代理命令行:参数 -DistributorSecurityMode 的值为 1。 |
合并代理在为连接到 IIS(D)指定的 Windows 用户的上下文下与分发服务器建立连接。 如果分发服务器和 IIS 位于不同的计算机上,并且集成身份验证用于连接 (D),则必须在运行 IIS 的计算机上启用 Kerberos 委派。 有关详细信息,请参阅 Windows 文档。 |
| 如果指定以下任一项,则使用 SQL Server 身份验证: Transact-SQL:0 是 @distributor_security_mode 参数在 sp_addmergepullsubscription_agent 中的值。 对DistributorSecurityMode而言,值为Standard的RMO。 合并代理命令行:-DistributorSecurityMode 的值为 0。 |
Transact-SQL:sp_addmergepullsubscription_agent的@distributor_login和@distributor_password参数。 RMO: DistributorLogin 和 DistributorPassword 合并代理命令行: -DistributorLogin 和 -DistributorPassword。 |
G. 连接到 FTP 服务器
仅当您将在将快照应用于订阅服务器之前,从 FTP 服务器(而非 UNC 位置)将快照文件下载到运行 IIS 的计算机时,才为此连接指定 Windows 用户。 有关详细信息,请参阅通过 FTP 传输快照。
| 身份验证的类型 | 其中指定了身份验证 |
|---|---|
| Windows 身份验证 | Transact-SQL:sp_addmergepublication的@ftp_login和@ftp_password参数。 RMO: FtpLogin 和 FtpPassword. |
H. 对快照共享的访问权限
快照共享由运行 IIS 的计算机上的合并复制协调器访问。
| 身份验证的类型 | 其中指定了身份验证 |
|---|---|
| Windows 身份验证 | 合并代理在指定用于连接 IIS (D) 的 Windows 用户上下文中访问快照共享。 如果快照共享和 IIS 位于不同的计算机上,并且集成身份验证用于连接 (D),则必须在运行 IIS 的计算机上启用 Kerberos 委派。 有关详细信息,请参阅 Windows 文档。 |
一。 IIS 的应用程序池帐户
此帐户用于在运行 Windows Server 2003 的计算机上启动 W3wp.exe 进程,或在运行 Windows 2000 的计算机上启动 Dllhost.exe 进程。 这些进程在运行 IIS 的计算机上托管应用程序,例如 SQL Server 复制侦听器和合并复制协调程序。 此帐户应对运行 IIS 的计算机上的以下复制 DLL 具有读取和执行权限:
Replisapi
Replrec
Replprov
Msgprox
Xmlsub
该帐户还应是IIS_WPG组的一部分。 有关详细信息,请参阅 配置 IIS for Web 同步中的“为 SQL Server 复制侦听器设置权限”部分。
| 帐户的类型 | 指定帐户的位置 |
|---|---|
| 任何具有所需权限的 Windows 用户。 | Internet Information Services (IIS) 管理器。 |