本主题介绍减少对复制拓扑的威胁的技术。
加密
加密是将数据转换为在不使用特殊密钥的情况下无法读取的表单的过程,以便只有预期收件人才能读取数据。 复制不会加密存储在表中或通过网络连接发送的数据。 这是设计上的,因为加密在传输级别提供许多技术,包括以下行业标准技术:虚拟专用网络(VPN)、安全套接字层(SSL)和 IP 安全性(IPSEC)。 建议对复制拓扑中的计算机之间的连接使用这些加密方法之一。 有关详细信息,请参阅启用数据库引擎的加密连接(SQL Server 配置管理器)。 有关使用 VPN 和 SSL 通过 Internet 复制数据的信息,请参阅 “通过 Internet 保护复制”。
如果使用 SSL 来保护复制拓扑中的计算机之间的连接,请为每个复制代理的 -EncryptionLevel 参数指定值 1 或 2(建议值为 2)。 值 1 指定使用加密,但代理不验证 SSL 服务器证书是否由受信任的颁发者签名;值 2 指定证书已验证。 代理参数可以在代理配置文件和命令行中指定。 有关详细信息,请参见:
复制在数据库主密钥方面具有以下行为,这些密钥用于加密数据:
如果主密钥存在于复制所涉及的数据库中(发布数据库、订阅数据库或分发数据库),则复制使用 SQL Server 2012 数据库对称密钥加密和解密该数据库中的代理密码。 如果使用主密钥,则应在复制所涉及的每个数据库中创建主密钥。 有关创建主密钥的详细信息,请参阅 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)。