威胁和漏洞缓解(复制)

适用于:SQL ServerAzure SQL 托管实例

本主题介绍减少复制拓扑所面临威胁的技术。

加密

加密是把数据转换成没有特殊密钥就不能读取、而只有特定的接收者能够读取的数据格式的过程。 复制并不加密存储在表中或通过网络连接发送的数据。 这是有意设计的,因为在传输层有多种加密技术可以使用,其中包括下列行业标准技术:虚拟专用网络 (VPN)、传输层安全性 (TLS)(原名为安全套接字层 (SSL))和 IP 安全 (IPSEC)。 建议对复制拓扑中各计算机之间的连接,使用这些加密方法之一。 有关详细信息,请参阅启用数据库引擎的加密连接(SQL Server 配置管理器)。 若要了解如何使用 VPN 和 TLS 通过 Internet 复制数据,请参阅保护通过 Internet 进行的复制

如果使用 TLS 来保护复制拓扑中计算机间的连接,请为每个复制代理的 -EncryptionLevel 参数指定值 1 或 2(建议指定值 2)。 值 1 指定使用加密,但代理不验证 TLS/SSL 服务器证书是否由受信任的颁发者进行签名;值 2 指定验证证书。 代理参数可以在代理配置文件和命令行中指定。 有关详细信息,请参阅:

就数据库主密钥(用于加密数据)而言,复制具有以下行为:

  • 如果复制所涉及的数据库(发布数据库、订阅数据库或分发数据库)中有主密钥,则复制使用 SQL Server 2012 (11.x) 数据库对称密钥对该数据库中的代理密码进行加密和解密。 如果使用主密钥,则应在复制所涉及的每个数据库中都创建主密钥。 有关创建主密钥的详细信息,请参阅 CREATE MASTER KEY (Transact-SQL)

  • 复制不会复制主密钥。 如果要求订阅服务器上有主密钥,则必须用 BACKUP MASTER KEY 从发布数据库导出主密钥,然后用 RESTORE MASTER KEY 将其导入订阅数据库。 有关详细信息,请参阅 BACKUP MASTER KEY (Transact-SQL)RESTORE MASTER KEY (Transact-SQL)

  • 如果为可附加的订阅数据库定义了主密钥,请使用 sp_attachsubscription (Transact-SQL)@db_master_key_password 参数指定主密钥密码。 这样就可以在订阅服务器上附加数据库了。

有关加密以及主密钥的详细信息,请参阅 Encryption Hierarchy

通过使用复制,您可以发布加密的列数据。 若要在订阅服务器上解密并使用此数据,则订阅服务器上也必须有用于在发布服务器上加密该数据的密钥。 复制并不提供安全机制来传输加密密钥。 您必须在订阅服务器上手动重新创建加密密钥。 有关详细信息,请参阅复制加密列中的数据 (SQL Server Management Studio)

另请参阅

复制的标识和访问控制
查看和修改复制安全设置