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)?的更多相关文章

  1. Oracle数据安全解决方案(1)——透明数据加密TDE

    Oracle数据安全解决方案(1)——透明数据加密TDE2009年09月23日 22:49:00 华仔爱技术 阅读数:7991原文地址: http://www.oracle.com/technolog ...

  2. SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用

    转:https://yq.aliyun.com/articles/42270 title: SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用 author: 石沫 背 ...

  3. 透明数据加密 (TDE)常见问题解答

    透明数据加密 (TDE)常见问题解答问题任何人只要有权访问加密数据就能对其进行解密吗?TDE 会带来哪些开销?哪些加密算法可与 TDE 一同使用?可以使用第三方加密算法代替 TDE 提供的算法吗?可以 ...

  4. 第九篇 SQL Server安全透明数据加密

    本篇文章是SQL Server安全系列的第九篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  5. 【译】第九篇 SQL Server安全透明数据加密

    本篇文章是SQL Server安全系列的第九篇,详细内容请参考原文. Relational databases are used in an amazing variety of applicatio ...

  6. Oracle-11g 中使用表空间透明数据加密(TDE)

    Oracle-11g 中使用表空间透明数据加密(TDE)的限制 TDE 表空间加密方式会在数据读写过程中加解密数据.与在 SQL 层面做加解密的 TDE 列加密方式相比,其限制要大幅减少.例如:数据类 ...

  7. SQL Server安全(9/11):透明数据加密(Transparent Data Encryption)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  8. QQ2010如何开启透明效果皮肤

    QQ2010可在WIN7下实现皮肤透明效果. 腾讯已于近日发布了QQ2010的BETA版本,经笔者试验,可在WIN7下实现皮肤透明化效果. 设置如下: 1.先打开QQ皮肤控制面板,如下: 2.然后任选 ...

  9. 在SQL Server 2008中执行透明数据加密

    问题 安全是任何公司的一个主要考量.数据库备份容易被偷并被恢复到另一个SQL Server实例上.当我们浏览SQL Server 2008的新特性时,我们对一个叫做透明数据加密的特性很感兴趣,我们可以 ...

随机推荐

  1. Qt信号槽写法

    1.标准写法 2.lamda表达式写法 3.地址函数指针写法

  2. 视差滚动(Parallax Scrolling)效果的原理与实现

    视差滚动(Parallax Scrolling)效果的原理与实现1.视差滚动效果的主要特点:    1)直观的设计,快速的响应速度,更合适运用于单页面    2)差异滚动 分层视差    页面上很多的 ...

  3. 获取本机CPU,硬盘等使用情况

    早上的时候接到主管的一个任务,要获取服务器上的cpu,硬盘, 数据库等 的使用情况,并以邮件的方式发给boss, = =没办法,公司的服务器真是不敢恭维,顺便吐槽一下公司的网速,卡的时候30k左右徘徊 ...

  4. React java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.edaixi.activity/lib-main/libgnustl_shared.so" is 32-bit instead of 64-bit

    E/AndroidRuntime: FATAL EXCEPTION: main Process: com.edaixi.activity, PID: 3659 at java.lang.Runtime ...

  5. 黑马程序员——读取Plist文件

    -iOS培训,iOS学习-------型技术博客.期待与您交流!------------ 读取Plist文件     一:新建一个plist文件,并将plist文件数据填入plist文件中,这里pli ...

  6. 深入理解 静态类和静态字段(C# 基础)

    序言 以前,总是被提醒,在编程过程中尽量少用静态变量,数据丢失什么的,今天有空,禁不住对静态变量的强烈好奇,跟我一起了解下静态家族的内幕吧. 静态类 定义 静态类与非静态类的重要区别在于静态类不能实例 ...

  7. 双人贪吃蛇小游戏C++原创

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang /*贪吃蛇*/ #include<stdio.h> #include<time. ...

  8. C语言读写伯克利DB 4

    因为缓存数据的buffer总是不够大(会引起段错误)索性从堆上拿了两块大内存 /* 功能说明:逐日存储来访用户(使用伯克利DB) 根据存储的用户信息确定某用户是否是首次来访用户(未被存储的伯克利DB) ...

  9. jquery checkbox 全选、取消全选

    $("#checkall").click(function(){ $("input[name='uid']").prop("checked" ...

  10. PowerShell_零基础自学课程_6_PS中获取帮助信息详解、管道、格式化输

    前些文章陆续的说了一些关于这些主题,但是讨论的都不够深入,今天我们深入的了解一下获取帮助信息.管道以及格式化输出的内容. 一.获取帮助信息 在PS中获取帮助信息,最常用的有: -? .get-comm ...