1

使用 TDE 加密数据库,我知道数据在写入数据库时​​是按页加密的。当我运行将几个表连接在一起并对这些表应用一些过滤的查询时,什么时候会发生解密?

它是否必须先解密表然后执行连接和过滤,或者它是否能够使用加密数据进行连接和过滤,然后只解密结果?

4

2 回答 2

1

来自MSDN

数据库文件的加密是在页面级别执行的。加密数据库中的页面在写入磁盘之前被加密,并在读入内存时被解密。

您需要了解缓冲池的工作原理。缓冲池是磁盘上数据的缓存。查询总是从 BP 读取数据并将更改写入 BP(简化解释)。当数据从 BP 传输到磁盘时发生加密,而当数据从磁盘传输到 BP 时发生解密。阅读了解 SQL Server 如何执行查询以详细了解这一切是如何工作的。

于 2016-09-26T14:49:20.180 回答
1

似乎解密是在从磁盘读取行时执行的。请注意,静态数据(保存到磁盘)仅被认为受 TDE 保护。一旦进入内存,数据就不再受 tde 保护。

TDE 和解密

TDE 旨在通过加密物理数据文件而不是数据本身来保护静态数据。这种保护级别可防止在文本编辑器中打开数据和备份文件以暴露文件的内容。

TDE 加密发生在将数据写入磁盘之前,数据在被查询和调用到内存时被解密。这种加密和解密无需任何额外的编码或数据类型修改;因此它是透明的。一旦数据从磁盘被召回到内存中,它就不再被认为是静止的。它已成为传输中的数据,这超出了此功能的范围。因此,除了 TDE 之外,您还应该考虑对敏感数据应用额外的保护支持层,以确保完全防止未经授权的披露。例如,除了 TDE 之外,您可能还希望实现加密的数据库连接、单元级加密或单向加密。对于数据库外部所需的额外传输保护数据,您可能需要咨询或遵从,

于 2016-09-26T14:51:18.733 回答