关于 TDE 和 AlwaysOn 可用性组的困惑
Confusion about TDE and AlwaysOn Availability Groups
这是我第一次 post 所以我会简短一点。
我有两台 SQL 2014 Enterprise 服务器;一个主要副本和一个辅助副本。这是一个多租户部署,每个租户都有单独的数据库。 (没有共享数据库或共享模式)。我目前有一个 AlwaysOn 可用性组和 运行(更多后续)。我有 TDE 要求。我有我们的 CA 颁发的 SSL 证书。它安装在 bother SQL 服务器上。我已将其转换为 .PVK 格式。我已准备好在两台服务器上使用相同的 .PVK 实施数据库加密
容易混淆的地方:
- 我是否必须像在正常的基于仲裁的故障转移群集中一样将 SSL 证书缩略图导出到辅助服务器注册表?
- 我必须先在主 SQL 服务器上创建主密钥,然后才能从文件创建新的 TDE 证书。我不明白辅助副本服务器如何影响这种情况。我需要可以在辅助服务器上访问加密的数据库。由于我正在处理不同的主数据库,是否必须在辅助服务器上创建另一个主密钥?我是否仍可以在辅助服务器上为 TDE 使用相同的 .PVK 证书?
如果有任何见解或指导,我将不胜感激。非常感谢。
直流
第一部分我无法回答,但是第二部分的答案基本上已经猜到了。使用与主服务器相同的规范在辅助服务器上创建新的主密钥,然后使用相同的证书。我找到了一个可能对您有帮助的 Microsoft 支持博客:https://blogs.msdn.microsoft.com/sqlserverfaq/2013/11/22/how-to-configure-always-on-for-a-tde-database/
因此,了解 TDE 的情况以及所有移动部件所在的位置会有所帮助。让我们从底部开始,逐步向上。
数据库加密密钥存在于用户数据库中。当 AG 移动到另一个节点时,它将使用数据库进行故障转移。
加密密钥由 master 数据库中的服务器证书加密。为了在故障转移后对其进行解密,保护它的证书需要在任何尝试解密它的节点上可用。
证书通常受数据库主密钥 (DMK) 保护。由于master只是另一个数据库(虽然是一个特殊的数据库),它只需要一个DMK来保护证书。
虽然与本次讨论无关,但 DMK 受服务主密钥 (SMK) 保护。安装实例时会为您生成 SMK。如果您遇到需要在创建数据库的服务器以外的其他地方解密 DMK 的情况,请确保手边有该 SMK。我最近做的一件事是确保 SMK 在 AG 中的所有节点上匹配(使用 backup service master key
和 restore service master key
)。这样,当节点之间的用户数据库出现故障时,DMK 可以由新节点上的 SMK 自动解密(因为它是同一个 SMK)。至于为什么与本次讨论无关,您的主数据库不会在节点之间发生故障。
就需要将证书导入注册表而言,根据我的经验,我还没有这样做过。
这是我第一次 post 所以我会简短一点。 我有两台 SQL 2014 Enterprise 服务器;一个主要副本和一个辅助副本。这是一个多租户部署,每个租户都有单独的数据库。 (没有共享数据库或共享模式)。我目前有一个 AlwaysOn 可用性组和 运行(更多后续)。我有 TDE 要求。我有我们的 CA 颁发的 SSL 证书。它安装在 bother SQL 服务器上。我已将其转换为 .PVK 格式。我已准备好在两台服务器上使用相同的 .PVK 实施数据库加密
容易混淆的地方:
- 我是否必须像在正常的基于仲裁的故障转移群集中一样将 SSL 证书缩略图导出到辅助服务器注册表?
- 我必须先在主 SQL 服务器上创建主密钥,然后才能从文件创建新的 TDE 证书。我不明白辅助副本服务器如何影响这种情况。我需要可以在辅助服务器上访问加密的数据库。由于我正在处理不同的主数据库,是否必须在辅助服务器上创建另一个主密钥?我是否仍可以在辅助服务器上为 TDE 使用相同的 .PVK 证书?
如果有任何见解或指导,我将不胜感激。非常感谢。 直流
第一部分我无法回答,但是第二部分的答案基本上已经猜到了。使用与主服务器相同的规范在辅助服务器上创建新的主密钥,然后使用相同的证书。我找到了一个可能对您有帮助的 Microsoft 支持博客:https://blogs.msdn.microsoft.com/sqlserverfaq/2013/11/22/how-to-configure-always-on-for-a-tde-database/
因此,了解 TDE 的情况以及所有移动部件所在的位置会有所帮助。让我们从底部开始,逐步向上。
数据库加密密钥存在于用户数据库中。当 AG 移动到另一个节点时,它将使用数据库进行故障转移。
加密密钥由 master 数据库中的服务器证书加密。为了在故障转移后对其进行解密,保护它的证书需要在任何尝试解密它的节点上可用。
证书通常受数据库主密钥 (DMK) 保护。由于master只是另一个数据库(虽然是一个特殊的数据库),它只需要一个DMK来保护证书。
虽然与本次讨论无关,但 DMK 受服务主密钥 (SMK) 保护。安装实例时会为您生成 SMK。如果您遇到需要在创建数据库的服务器以外的其他地方解密 DMK 的情况,请确保手边有该 SMK。我最近做的一件事是确保 SMK 在 AG 中的所有节点上匹配(使用
backup service master key
和restore service master key
)。这样,当节点之间的用户数据库出现故障时,DMK 可以由新节点上的 SMK 自动解密(因为它是同一个 SMK)。至于为什么与本次讨论无关,您的主数据库不会在节点之间发生故障。
就需要将证书导入注册表而言,根据我的经验,我还没有这样做过。