威胁和漏洞缓解(复制)

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

加密

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

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

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

  • 如果复制所涉及的数据库(发布数据库、订阅数据库或分发数据库)中有主密钥,则复制使用 SQL Server 2008 数据库对称密钥对该数据库中的代理密码进行加密和解密。 如果使用主密钥,则应在复制所涉及的每个数据库中都创建主密钥。 如果复制所涉及的数据库中没有主密钥,则复制使用 SQL Server 2000 中的可用算法对该数据库中的代理密码进行加密和解密。 有关创建主密钥的详细信息,请参阅 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 参数指定主密钥密码。 这样就可以在订阅服务器上附加数据库了。

有关加密以及主密钥的详细信息,请参阅加密层次结构

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