目前查到有这些,发现新的继续补充~
对比项 | Always Encrypted | TDE |
目的 | 防内。确保DBA、os管理员、云管理员或其他高特权但未经授权的用户无法访问加密的数据,使客户能够放心地将敏感数据存储在不受其直接控制的区域。 | 防外,DBA可以访问其中所有数据。通过TDE加密物理文件,避免在物理介质(例如备份)被盗的情况下,恶意方可以通过恢复或附加数据库查看数据。 |
版本要求 | SQL Server 2016及更高版本 | SQL Server 2008及更高版本 |
需要企业版 | 否(从SQL Server 2016 SP1开始) | 是 |
在Azure SQL中免费 | 是 | 是 |
保护静态数据 | 是 | 是 |
保护使用中的数据 | 是 | 没有 |
数据在客户端进行加密/解密 | 是。传输过程中发生加密。加密是通过API(例如ADO.net,JDBC,ODBC)在客户端应用程序完成的。 | 没有 |
数据在服务器端被加密/解密 | 没有 | 是 |
在列级别加密 | 是,仅支持对加密列进行非常有限的操作 | 否(加密整个数据库) |
对应用程序透明 | 部分地 | 是 |
加密选项 | 有 | 没有 |
加密密钥管理 | 客户管理密钥 | 服务或客户管理的密钥 |
使用Protects keys | 是 | 没有 |
需要Driver | 是,支持特定驱动程序(例如.NET和Java)。不确定何时应用程序需要更改/升级驱动程序,何时对现有数据进行数据加密。 | 否,它是数据库级别的,适用于所有应用程序。 |
限制 | 很多,参考 https://sqltutorialtips.blogspot.com/2017/11/always-encrypted-vs-transparent-data.html | 较少,参考注意事项部分 SQL Server 透明数据加密 TDE(单实例)_Hehuyi_In的博客-CSDN博客_sqlserver透明加密 |
参考
https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/configure-always-encrypted-using-sql-server-management-studio?view=sql-server-2017
https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-database-engine?view=sql-server-2017
https://www.mssqltips.com/sqlservertip/4011/sql-server-2016-always-encrypted/
https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/transparent-data-encryption?view=sql-server-2017
https://www.mssqltips.com/sqlservertip/2471/securing-and-protecting-sql-server-data-log-and-backup-files-with-tde/
https://azure.microsoft.com/en-in/blog/transparent-data-encryption-or-always-encrypted/
https://sqltutorialtips.blogspot.com/2017/11/always-encrypted-vs-transparent-data.html
https://www.mssqltips.com/sqlservertip/2641/sql-server-transparent-data-encryption-tde-performance-comparison/