我正在研究在SQL Azure数据库上实现透明数据加密(TDE)。 Azure将备份创建为.bacpac文件。 TDE上的文档提到了
“启用了TDE的数据库的备份文件也使用数据库加密密钥加密。”
文档没有具体提及有关.bak或.bacpac文件的任何内容。有没有人有经验,更重要的是官方文档,TDE会加密.bacpac文件?
任何指针和建议都将不胜感激。
更新: 我能在这里找到官方文件TDE Azure。在页面的底部,它表示.bapacpac文件不是ecrypted。
我觉得这对于SQL Azure上的TDE来说是一个巨大的缺点,因为我真的很喜欢这种功能可以阻止.bak文件在没有TDE中使用的证书/密钥的情况下在另一台服务器上恢复。
答案 0 :(得分:5)
.bak和.bacpac文件非常不同。 .bak文件是数据库文件页面的副本。 .bacpac文件是通过脚本化TSQL语句来创建的,以重新创建数据库的模式,并使用批量导出来查询和导出所有表的行。请参阅“开始之前”下的https://msdn.microsoft.com/en-us/library/hh213241.aspx列表项#2,以查看使用批量操作提取.bacpac文件数据。
TDE的工作原理是加密数据库文件页面,但将文件的内存版本保留为纯文本,以便查询它们。由于.bak文件是数据库文件页面的副本,因此它们是加密的。由于.bacpac文件中的数据是输出查询,因此它们是纯文本和未加密的,就像bcp out文件来自TDE数据库一样。