SQL Server 2008中的TDE
2008-04-14 09:53:45 来源:WEB开发网在SQL Server 2005中,我们得到了一个新的功能:数据加密,在SQL Server 2008中,这一功能得到了进一步的增强。除了SQL Server 2005中支持的Cell级加密外,现在SQL Server 2008加入了整库加密,微软称其为数据库透明加密Transparent Data Encryption(我们后面简称TDE)。相比SQL Server 2005的加密,TDE工作在SQL Server的IO层,因此开销更小,同时对应用程序的影响也降低到零。
因此在Windows Server 2008平台上,我们现在对数据库的数据加密保护手段已经有了4种,分别是:
Windows 2000开始加入的EFS功能
Windows Vista和Windows Server 2008开始的BitLockers
SQL Server 2005开始引入的Cell级加密
SQL Server 2008加入的TDE
关于这4项技术的对比会在稍后的帖子中讨论.
SQL Server的数据加密框架先看一下SQL Server 2005的加密体系:
然后再看一下SQL Server 2008中的数据加密体系:
相比之下,SQL Server 2008的加密体系多出了TDE这条路径,就是上图中虚线部分,SQL Server 2008会通过DMK(Database Master Key数据库主密钥)直接加密数据文件,也可以通过EKM(Extensible Key Management外部密钥管理)直接加密数据文件。
SQL Server 2005与SQL Server 2008相同之处在于两者都是用Windows操作系统提供的DPAPI(Data Protection API数据保护应用开发接口)来保护SMK(Service Master Key服务主密钥),每个SQL Server的实例都拥有自己的SMK
EFS对SQL Server的性能影响主要原因是SQL Server在EFS加密文件上执行IO的时候IO操作是同步操作,也就是说如果SQL Server的工作线程需要一次IO就必须等到当前的文件IO结束,因此SQL Server中的Read Ahead机制和CheckPoint机制都会受到影响。关于这个问题的具体讨论可以参考微软支持网站的KB922121。
赞助商链接