复制安全最佳做法
适用范围:SQL Server
复制在分布式环境(从单个域中的 Intranet 到在不受信任的域之间通过 Internet 访问数据的应用程序)中移动数据。 理解在这些不同环境下保护复制连接的最佳方法非常重要。
下面是在所有环境中均与复制相关的信息:
使用行业标准方法来对复制拓扑中计算机间的连接进行加密,如虚拟专用网 (VPN)、传输层安全性 (TLS)(旧称为“安全套接字层 (SSL)”)或 IP 安全性 (IPSEC)。 有关详细信息,请参阅启用数据库引擎的加密连接(SQL Server 配置管理器)。 若要了解如何使用 VPN 和 TLS 通过 Internet 复制数据,请参阅保护通过 Internet 进行的复制。
如果使用 TLS 来保护复制拓扑中计算机间的连接,请为每个复制代理的 -EncryptionLevel 参数指定值 1 或 2(建议指定值 2)。 值 1 指定使用加密,但代理不验证 TLS/SSL 服务器证书是否由受信任的颁发者进行签名;值 2 指定验证证书。 代理参数可以在代理配置文件和命令行中指定。 有关详细信息,请参阅:
以不同的 Windows 帐户运行每个复制代理,并对所有复制代理连接使用 Windows 身份验证。 有关指定帐户的详细信息,请参阅复制的标识和访问控制。
仅对每个代理授予其所需的权限。 有关详细信息,请参阅 Replication Agent Security Model中的“代理所需权限”部分。
确保所有合并代理和分发代理帐户均在发布访问列表 (PAL) 中。 有关详细信息,请参阅保护发布服务器。
遵循最小权限原则,仅对 PAL 中的帐户授予其执行复制任务所需的权限。 不要向复制不需要的任何固定服务器角色添加登录帐户。
配置快照共享,以允许所有合并代理和分发代理进行读访问。 对于具有参数化筛选器的发布的快照,请确保将每个文件夹配置为仅允许相应的合并代理帐户进行访问。
配置快照共享,以允许快照代理进行写权限。
如果使用的是请求订阅,请为快照文件夹使用网络共享,而不要使用本地路径。
如果复制拓扑中包含的计算机位于不同的域中,或位于彼此未建立信任关系的域中,则可以对代理建立的连接使用 Windows 身份验证或 SQL Server 身份验证(有关域的详细信息,请参阅 Windows 文档)。 建议使用 Windows 身份验证作为最佳安全配置。
使用 Windows 身份验证:
为适当节点处的每个代理添加一个本地 Windows 帐户(而非域帐户),在每个节点都使用同一名称和密码。 例如,推送订阅的分发代理在分发服务器上运行,并与分发服务器和订阅服务器建立连接。 应将分发代理的 Windows 帐户添加到分发服务器和订阅服务器。
确保给定代理(例如订阅的分发代理)在每台计算机上都以同一帐户运行。
要使用 SQL Server 身份验证:
为适当节点处的每个代理添加一个 SQL Server 帐户,在每个节点都使用同一帐户名和密码。 例如,推送订阅的分发代理在分发服务器上运行,并与分发服务器和订阅服务器建立连接。 应将分发代理的 SQL Server 帐户添加到分发服务器和订阅服务器。
确保给定代理(例如订阅的分发代理)在每台计算机上都以同一帐户建立连接。
需要 SQL Server 身份验证时,UNC 快照共享通常无法访问(例如,防火墙可能阻止访问)。 在这种情况下,可以通过文件传输协议 (FTP) 将快照传输到订阅服务器。 有关详细信息,请参阅通过 FTP 传输快照。