我正在阅读有关 SQL 加密方法的信息,我对 TDE 有很好的理解,然后我阅读了有关加密列的信息,然后我阅读了有关始终加密的信息。Always Encrypted的描述非常冗长和详细,但带有Encrypted Columns的文本的深度较浅,但在我看来,它就像是在做同样的事情。我想了解两者之间的区别以及新版本是否有任何优势?
我正在阅读有关 SQL 加密方法的信息,我对 TDE 有很好的理解,然后我阅读了有关加密列的信息,然后我阅读了有关始终加密的信息。Always Encrypted的描述非常冗长和详细,但带有Encrypted Columns的文本的深度较浅,但在我看来,它就像是在做同样的事情。我想了解两者之间的区别以及新版本是否有任何优势?
我知道的主要区别是
普通列加密
从 SQL Server 2005 引入的普通列加密使用函数Encryptbycert来加密列。与 Always Encrypted 相比,它不如 Always Encrypted 安全,因为使用此方法,数据在 SQL Server 中以明文形式提交,并且可以从跟踪中看到此数据。对 SQL Server 具有管理员访问权限的 DBA 可以查看数据,因此这实际上并不完全安全。
始终加密
在始终加密的情况下,加密是通过 API 在客户端应用程序上完成的,例如 ADO.net、ODBC。驱动程序安装在客户端以执行此加密。这将不允许 SQL Server 查看文本数据,因此不会向 DBA 和在 SQL Server 上具有管理员访问权限的人透露它。Always Encrypted 允许客户端加密客户端应用程序内的敏感数据,并且永远不会向数据库引擎泄露加密密钥。
引用自Docs.microsoft
我希望我能够让您对这两种技术有所了解。