饮水机 发表于 2009-1-7 11:16:50

SQL

版权声明:本作品已刊登在《IT实验室周报》第03期第05版,作者David。版权属于《IT实验室周报》与中国IT实验室网站共同所有,禁止任何媒体、网站或个人在未经书面授权的情况下转载、摘编或利用其它方式使用上述作品。已经授权使用作品的,应在授权范围内使用,并注明“来源:IT实验室周报”。违反上述声明者将追究其相关法律责任。

   SQL Server 2008还没正式发布,关注2008的朋友可能都细心地发现,通过微软去年11月公布的企业测试版,相对于2005,2008CTP版又多了几个新功能。对于大型数据库来讲,数据库备份是最重要一环,而这次Sql server 2008增加了与其他同类产品类似的透明数据加密功能即TDE。TDE将Sql server 数据库备份的压缩和加密,得到很好发挥。本文就Sqlserver 2008,这一功能做一个简单介绍。
    2008备份压缩新突破
    数据库的压缩质量包括两个方面备份文件的大小和备份以及恢复的速度。在Sql Server 2008的基本环境下,做这样一个测试,通过一个 USB 2接口,在虚拟机中,用1.5GB的内存和自带专用7200转EIDE硬盘 (8MB高速缓冲存储器cache).电脑主机是一个 Intel Core 2 Duo 2.2GHz CPU (T7500), 4GB 内存 and a 7200rpm SATA 硬盘的笔记本.测试时间大概就是几分钟的时间。
    我们通过示例数据库OLTP的数据库进行一个测试,测试的结果如下图
   



测试项
备份时间
恢复时间
文件大小

传统数据库
n/a
n/a
174,080 MB

非加密备份
23s
23s
171,093 MB

加密备份
11s
14s
40,097 MB
   
    对于大批量的数据输入输出的数据仓库,SQL Server 2008 还是能达到一个很好的处理能力。 Sql server 2008压缩原理可以通过下图简单说明。从下图中,我们可以看到,2008节省了三个字节位。这就极大提高了压缩率。另外,2008针对列、表都有新的处理,具体可以参考微软的在线网站。
   
   



SQL 2005
0 0 0 1   4位字节整数

SQL 2008 (可压缩)
1            1位字节整数   
    相对SQL 2005,这一点非常不错,这也让数据库管理员非常兴奋,在我们恢复数据,我们用更少的时间把数据发送磁盘或修复,同时恢复的次数也就少的多。有一点要注意的是,规模较小的备份文件,也有利于一些灾难恢复的情况(基本上是那些更好的拯救方案)。没有一个存储区域网络的复制解决方案或某种形式的日志/数据库镜 的公司来说,常常将备份文件转移到敏感数据储存区。较小的文件意味着更快的传输时间,这意味着更有可能被恢复(这样的间隔时间将是比较小的)。但如果是数十TB数据库备份的处理,那就可能会有百分之五的差别。这对于使用SQL Server 数据库管理员来讲,上面的结果还是很值得惊喜的。
    当然,大部分数据库管理员都是选择第三方数据备份软件。很多情况下,数百GB的数据库,从压缩比和性能看,流行的第三方软件似乎还是有好处的。
<
               
    备份中CPU利用率的降低
    相对2005来讲,SQL Server 2008释放更多的一些CPU资源,但是释放的程度往往需要看备份的数据库。实际情况来看,这低于一般的情况,在系统运行时,我们可以不再面对CPU压力过大。因为在完全备份数据库紧急的几个小时里,这种情况发生不是很对,但是对于对于我们数据库管理员来讲,这是非常重要的。很多的数据备份的时候,往往会有其他应用程序在运行,因此在我们在运行的时候,一定要注意不能饱和使用CPU 。
   Sql Server 2008 数据透明加密(TDE)
    备份过程中,数据库的加密,安全是第一位的。现在我们正在思考,有了透明数据加密之后,数据库管理员就可以结合数据密码加密一起用了。备份压缩和透明数据加密,首先是建立在对于现在的管理员的完全释放。从TDE开发人员的日记中可以发现,他们非常尊重用户的需求。其中列了两项:一,使数据加密而不影响应用程序访问数据,另外就是对整个数据库进行加密。
    通过提供一个数据库级的加密功能,TDE满足两方面的需求,数据库的数据和日记文件加密在硬盘上,同时内存读取的时候,加密,这使得加密真正透明的应用。数据库应用程序尽量减少 I/O,而加密和解密结合到I/O,将可以让现有的应用程序设计优化,将对数据加密性能的影响降到最低。
    粒维度级别的上,TDE作为一种补充功能。而加密功能,推出了SQL Server 2005提供了一种方法来加密单个件的数据(就是我们所说的,因为细胞级加密,因为它提供了更精细的粒度,比列级别加密) ,新TDE功能可将加密数据库的级别。另外,从密码学的角度来看,该算法用于在TDE也可与细胞级加密,所以有两个特点提供同样的加密强度。TDE不能简单地理解为替代SQL Server 2005的加密解决方案
    与EFS结合使用
    通过EFS(Encrypting File System)对整个文件进行加密的同时,通过透明数据加密对数据库文件进行加密。 选择正确的加密组合,取决于我们对的数据传输的要求,如果我们对于管理储存库的windows管理者不放心,这时候我们就需要一个集中储存库来存储所有备份, 可以采用集中存放方式。透明数据库加密保证了其他人不能拷贝到相关备份文件。恢复到其它SQL 服务器。在数据恢复的时候,这还是有可能同时使用,但是我们必须警惕隐含的管理和他的性能指标 (EFS完成后再完成数据库)。
<
               
    升级过程中的备份加密问题
    将Sql Server 2005升级到2008,我们还是要小心谨慎,特别是正在升级一个的已经对列表加密的数据库Server 2005 。 建议你还是要回归到纯文本之前升级. 当然一般情况不会发生问题,我们还是提醒数据库管理员,和使用第三方加密产品一样,在升级过程中我们还是会碰到一些问题的。
    在升级过程中,影响如事务日记和临时数据库,也可能会影响其他。一旦你打开了数据库,一定要确认数据库不是在非加密存储的状态下。虚拟日志文件会被锁定,新的事务通过虚拟查表程序 (Virtual Lookaside Facility)加密。 临时数据库也会被加密,(而临时数据库是活动最为平凡的数据库常常被用来排序、创建临时表、重格式化等操作)
    比如说,我们不能以明文的方式存储数据以方便简单的升级,如果这样,我们首先需要升级,进而扭转过程中,通过基础的功能来 列级别加密功能。这就是说,我在把TDE运用到数据库上,然后,将数据从加密的列移动到非加密的状态。因此,我们通过(你可以清除掉用户自定义函数User-Defined Function),当然也可以拥有这个。
    TDE管理
    用一个特殊的密钥加密数据库TDE,简单地说,就是数据库加密密钥(DEK) 。这样我们可以通过标准DDL (创建/修改/删除)对数据库加密密钥进行管理 ,实际状态加密,可开启或关闭用改变数据库的声明和一项新的条款,就如同设置加密[开|关]。DEK的信息,可以从dmv(sys.dm_database_encryption_keys)获取 。最好不要图形用户界面进行数据库操作,所有这些特征暴露了本地管理工作室,因此,建议使用用SQL查询信息。说到管理一个数据库,从数据库管理员角度看,可以发现更多细节的DDL和系统目录。在灾难恢复的情况下,通过TDE使得数据备份得到加密,一定要确定备份好密钥和数字证书 ,否则,就不能重新启动数据库了。
    结语:制度优先
    虽然说2008这些新的功能让我们非常兴奋。还有一些其他问题需要注意,虽然微软SQL Server 2008在安全开发越来越完善,但是,在实际工作中,章程或者管理可以禁止这类问题的发生.当其他的相关概念流行起来的时候,并不是技术所能信的。在2008当中,没有对透明数据库加密的特别关注。那什么是加密文件系统EFS, 只考虑它作为另一种选择,以适当利用.
    请问我们为什么需要备份加密数据库?如果这里只有一个原因,那就是保证数据库更加的安全。可能很多管理员再考虑数据库安全的时候,会选择TDE或者不需要。我还是想提醒是安全不仅仅是技术问题,如果我们不教育员工和用户,严格执行时间安全进程条例, 相当数量加密不会保存我们的数据。TDE只是一层防御,还是需要制度先行,人与系统的结合才能达到最好的安全。
<
页: [1]
查看完整版本: SQL