嗯,最近在研究数据库备份相关的东西,考虑到应该为数据库备份加个密,就准备从网上搜索一下看看有什么好办法,没想到还挺乱。。。
首先,我从网上搜到的,对数据库备份加密的方法,主要有三种:
1、在使用 BACKUP 语句时,添加 PASSWORD 参数【此方法适用于 sql server 2012 以前的版本(不包含 2012)】
不过呢,其实这个 PASSWORD 参数的加密,并不是我们想象中的对数据完整的加密。
根据 MSDN 中的介绍:https://msdn.microsoft.com/zh-cn/library/ms186865(v=sql.100).aspx
貌似此密码仅仅是给备份附加了一个密码,并没有对备份数据加密,如果该密码直接被修改替换,备份中的数据仍然可以被正确的读取,所以,其实加密的意义不是很大。
2、对数据库启用 透明数据加密(TDE)【此方法适用于 sql server 2008 及以后的版本(含2008)】
注:仅 sql server enterprise(企业版)支持此功能。
这个TDE吧,嗯,非常的好,因为它不仅仅是对备份加密,它是对整个数据库进行了加密,而且既然是“透明”,也就是说不会影响到任何对数据库的操作,正常的对数据库操作(增删改查什么的),还有备份恢复什么的,都不需要特别的考虑加密问题。只有离开了当前的数据库服务器,就会发现,什么都做不了。需要在新的服务器中导入原来的加密证书即可正常使用。
MSDN 相关文档:https://msdn.microsoft.com/zh-cn/library/bb934049.aspx
要启用透明加密,需要以下几个步骤:
1、在 master 数据库中,添加 数据库主密钥: