何时可以开启透明数据加密(TDE)?
TDE可以为我们的数据库提供加密保护,但是,不是任何情况下都可以随意开启TDE的,同时开启TDE后,我们的数据库维护管理工作也需要进行一些调整。
下面我们就先看看开启TDE需要的条件吧!
无法正常开启TDE的情况只有一种,那就是数据库中有只读文件组。
一般,我们查询sys.dm_database_encryption_keys可以得到DEK的状态,encryption_state为1、2、3、4、5分别表示没有加密、加密中、已加密、密钥改变中、解密中的状态。正常情况下,当我们设置正确并开启TDE后,encryption_state=3,表示表示TDE开启,数据库已加密。但是当数据库中有只读文件组的时候,我们设置正确并开启TDE时,SQL Server不会有任何异常,打开数据库属性窗口也可以看到TDE已开启。不过我们会发现,encryption_state永远等于2,也就是说一直处于加密中状态而无法完成。所以,如果数据库有只读文件组,那么将无法成功开启TDE。
另外一种情况是,如果数据库使用了filestream数据类型VARBINARY(MAX),那么文件流数据类型将不会被加密,不过数据库本身还是可以使用TDE来进行加密的。
再来看看开启TDE后,都会造成哪些影响。
首先考虑的是数据库的恢复。
因为开启TDE后,数据库的数据文件、日志文件、备份文件都会被加密,所以如果没有TDE的证书备份的话,将无法进行数据库的恢复。这里不仅仅指数据库备份的恢复,还包括事物日志传送和数据库镜像等,如果辅助服务器上没有有效的TDE证书,那么事物日志传送和数据库镜像都会失败。
其次我们看下数据库的备份压缩。
在SQL Server 2008上,正常的数据库备份压缩,可以达到90%以上的压缩比,即压缩后的文件只有压缩前的10%以下的大小;但是开启TDE后,备份压缩的效率就非常不明显了,压缩后的文件差不多都是压缩前的90%以上。
最后,还有一个问题是系统临时数据库tempdb。
如果在SQL Server实例上的任何数据库上开启了TDE,那么这个实例上的tempdb也将会自动加密,这将导致其他未开启TDE的数据库在使用tempdb数据库时性能下降。
基本上,开启TDE所要考虑的方面就是以上5点。如果你想开启TDE用来保护数据库,而且你的数据库中没有只读文件,也没有filestream数据类型或者有filestream数据类型,但是这个类型的数据不加密也可以接受,并且你也考虑到了数据库恢复、备份压缩以及tempdb数据库使用上会有一些变化,这些变化都不会对的系统造成重大的影响,你都可以接受的话,那么你就可以开启TDE了。
何时可以开启透明数据加密(TDE)?的更多相关文章
- Oracle数据安全解决方案(1)——透明数据加密TDE
Oracle数据安全解决方案(1)——透明数据加密TDE2009年09月23日 22:49:00 华仔爱技术 阅读数:7991原文地址: http://www.oracle.com/technolog ...
- SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用
转:https://yq.aliyun.com/articles/42270 title: SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用 author: 石沫 背 ...
- 透明数据加密 (TDE)常见问题解答
透明数据加密 (TDE)常见问题解答问题任何人只要有权访问加密数据就能对其进行解密吗?TDE 会带来哪些开销?哪些加密算法可与 TDE 一同使用?可以使用第三方加密算法代替 TDE 提供的算法吗?可以 ...
- 第九篇 SQL Server安全透明数据加密
本篇文章是SQL Server安全系列的第九篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
- 【译】第九篇 SQL Server安全透明数据加密
本篇文章是SQL Server安全系列的第九篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...
- Oracle-11g 中使用表空间透明数据加密(TDE)
Oracle-11g 中使用表空间透明数据加密(TDE)的限制 TDE 表空间加密方式会在数据读写过程中加解密数据.与在 SQL 层面做加解密的 TDE 列加密方式相比,其限制要大幅减少.例如:数据类 ...
- SQL Server安全(9/11):透明数据加密(Transparent Data Encryption)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...
- QQ2010如何开启透明效果皮肤
QQ2010可在WIN7下实现皮肤透明效果. 腾讯已于近日发布了QQ2010的BETA版本,经笔者试验,可在WIN7下实现皮肤透明化效果. 设置如下: 1.先打开QQ皮肤控制面板,如下: 2.然后任选 ...
- 在SQL Server 2008中执行透明数据加密
问题 安全是任何公司的一个主要考量.数据库备份容易被偷并被恢复到另一个SQL Server实例上.当我们浏览SQL Server 2008的新特性时,我们对一个叫做透明数据加密的特性很感兴趣,我们可以 ...
随机推荐
- setInterval()、clearInterval()、setTimeout()和clearTimeout()js计数器方法
原文地址:http://caibaojian.com/setinterval-settimeout.html window.setInterval()方法 介绍 周期性地调用一个函数(function ...
- 关于bootStrapdialog 学习心得
在用play这个框架做项目的时候,我们的背景以及一些插件用的都是 bootStrap3.0的JS以及CSS 这次用到的bootStrapdialog 所需要演示的效果 就是 在一个网页系统里, 当你 ...
- C语言预处理指令的初步了解
所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理是C语言的一个重要功能,它由预处理程序负责完成.当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分 ...
- Number Sequence--hdu1005
Number Sequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- hdu 5305Friends
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5305 Problem Description There are n people and m pai ...
- python中的函数存入list中的实例
最近由于接触了python这个强大的东西,在写代码时考虑到代码的扩展性,就想到了将python的函数名存入list中.有点像习惯的c/c++中的函数指针的意思. 下面上代码: # coding=utf ...
- NSScanner-备
注意:在扫描的时候,如果 空格是不需要扫描的,那么将会忽略空格. 如下代码: 1 NSString *string = @"my age is d 23 34.0"; ...
- EXTJS 4.2 实现 gridpanel 鼠标悬停单元格以提示信息的方式显示单元格内容。
由于gridpanel的单元格里的文字太多时候,都由省略号代替,就想实现如题的功能,经过反复实验,终于搞定了!直接上代码: me.on('itemmouseenter', function (view ...
- Uva272.TEX Quotes
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- poj2787 算24
每次枚举两个数,一个运算符,得到一个运算结果.在重复执行,直到只剩下一个数即可. #include <iostream> #include <cmath> using name ...