如何在不恢复备份的情况下查找 SQL 服务器备份是否使用 TDE 加密

yeg*_*sew 13 sql-server

有没有办法从 SQL Server 备份文件或 MSDB 表中查找备份是否使用 TDE 加密,而无需尝试还原备份文件?

谢谢

Sco*_*red 30

我对Brent 的回答投了赞成票,因为他的方案肯定会混淆备份是否包含 TDE 数据。

但是,如果您已经启用 TDE 一段时间,那么RESTORE FILELISTONLY (Transact-SQL) 似乎可以提供您想要的信息。结果集中有一列名为TDEThumbprint“显示数据库加密密钥的指纹。加密器指纹是密钥加密所用证书的 SHA-1 哈希”。

我查看了一些既是 TDE 加密又不是 TDE 加密的备份。

我的 TDE 数据库的备份在该列中有证书指纹,没有 TDE 数据库的备份为空。


Bre*_*zar 10

想象一下,您有一个 1 TB 的数据库。备份需要一段时间,加密需要一段时间。所以想象一下:

  • 9:00 AM - 您开始进行完整备份
  • 9:01 AM - 在另一个窗口中,您开始在数据库上启用 TDE
  • 9:05 AM - 备份完成
  • 9:10 AM - TDE 完成

假设您完成恢复完整备份后,它将继续应用 TDE,加密数据库的其余部分,您希望您的查询返回什么?

相反,假设您从一个已经加密的数据库开始,并且:

  • 9:00 AM - 您移除 TDE(这需要一些时间)
  • 9:01 AM - 您开始完整备份
  • 9:05 AM - 数据页不再加密
  • 9:06 AM - 您的完整备份完成

您希望查询返回什么?这些示例方案说明了为什么 TDE 加密不是msdb.dbo.backupset 中包含的字段之一。