为增强安全性 SQL Server加密备份

网络整理 - 07-26
随着数据安全需求的不断增加,不论以何种方式,都不要忽略对你的数据库备份文件的安全保证。在本地的SQL Server备份中,备份文件中的数据是以普通文本格式存储的,仅仅用文本编辑器就可以轻松阅读。根据表中使用的数据类型,一些数据比另外的一些数据更容易查看。

  试试这个你几乎从来没有进行过的试验。对Northwind数据库进行备份,或者任何其它小型数据库,然后用任意的文本编辑器打开备份文件。你将会看到数据自身有一点难以理解,但是只要你看到存储过程的注释,然后通读一下文件,你就会看到你的备份文件的真正价值所在。如果你采取行动,将用户ID和/或密码存储在你的存储过程中,首先这可不是一个好主意,这个数据现在就可以被任何能够接触到备份数据库的人所访问。如果你有其他藏有秘密信息的文本数据类型,你也会让这些数据非常有意义了。

  备份密码

  SQL Server中的一个选项就是创建用密码创建备份。这是你在创建备份的时候可以使用的另一个选择,但是在企业版管理器或者SQL Server管理套件中,并没有提供这个选项。这里是一个使用密码选项备份的例子:

  backup database northwind to disk='c:northwind.bak' with mediapassword = 'Backup2006'

  这个过程需要密码来重新存储文件,但是使用文本编辑器,这些数据仍然是可以访问的。还有,重新存储不能使用GUI来完成,所以它必须通过T-SQL重新存储命令和密码一起完成任务。

  加密存储过程

  一种防止你的存储过程被用于查看的方法就是在创建你的存储过程的时候使用“带加密”的选项。这样的话,备份文件中的数据也是经过加密的了。要使用加密来创建一个存储过程,如下所示:

create procedure dbo.testEncryption
with encryption
as
SELECT * FROM products

  加密数据

  另一个选择就是在你把数据存储到你的数据库表中的时候,对数据进行加密。在SQL Server 2000中没有本地的方法来完成,但是有很多工具你可以使用:

  针对SQL Server的NetLib Encryptionizer

  使用XP_CRYPT加密SQL Server

  SQL Server 2005中存在本地加密功能。看看微软的文章<>如何:加密一列数据,那里解释了这个过程。在你加密了数据库中的数据之后,当你创建备份的时候,数据仍然是经过加密的。

  保证文件系统的安全

  保卫你的备份文件的安全的另一个方法就是在你的服务器或者网络中使用安全目录。你可以限制访问这个目录的权限,这样就只有一小部分受限制的人能够访问你的备份文件。通过在安全目录上使用上述的技术,你就可以创建另一个级别的安全措施了。这仍然不会消除加密的需求,但是它提供了额外的安全措施。

  直接备份到磁带

  备份的另一个选择就是直接备份到磁带上,以便在你的网络中保证备份文件的安全。这种方法减少了对你的备份文件的不正当访问的问题。用这种方式有一个大问题:我写入的大部分关于备份的内容都是首先写入磁盘的,以便在必要的时候能够快速重新存储,然后再为了长期的存储而归档到磁带上。这种方式消除了你的备份落入坏人之手的机会,但是,不幸的是,它让其他的处理过程变得困难。

  加密备份

  如果你真的需要保证你的备份文件的安全,最好的方式就是在你创建备份文件的时候对其进行加密。不幸的是,SQL Server中没有工具可以让你完成这个任务,但是看看以下的产品,它们可以让你创建各种级别的密码和加密技术加密备份。

  Idera的 SQLsafe

  Quest的 SQL LiteSpeed

  Red-Gate的 SQL Backup

  有几种不同的方式来保护你的数据库备份文件,以及备份文件内容。查看你的数据库,找出哪个数据库有需要保护的信息或者代码。然后实现一个或者几种上述的技术来确保你的数据远离图谋不轨的眼睛。