另一个新功能是透明加密,SQL Server 2008 R2可以对整个数据库、数据文件和日志文件进行加密,而不需要改动应用程序 。对数据进行加密可使公司满足遵守规范和极其关注的隐私数据的需求,透明数据加密的优点是可以在任何范围或模糊查询已加密数据、加强数据的安全性要求以防止未授权用户对数据的越权访问。它允许用户再不必更改应用程序的情况下机密数据库文件,可对数据和日志文件执行实时I/O读、写时加密和解密,如下图2所示。加密所使用的数据库加密密钥(Database Encryption Key,DEK)存储在数据库引导记录中,用于执行加密和解密操作,以便在恢复时仍可使用,DEK的安全性则由服务主密钥(Servive Master Key)或硬件安全模块(Hardware Security Module,HSM)保护,HSM通常是USB设备或智能卡,因而不易被盗或丢失。DEK 的安全则由存储在服务器主数据库中的一个证书来保证。下图3中显示了实现透明数据加密的体系结构。
图2 透明数据加密
透明数据加密可以加密数据库中的敏感数据,并且使用证书来保护用于加密数据的密钥,可以帮助用户遵循与正确保护数据相关的众多法律、法规和行业标准。透明书籍加密允许软件开发人员使用高级加密标(AES)和三重数据加密标准(3DES)加密算法来加密数据,数据库文件的加密是在页面级执行的,再写入磁盘之前加密页面,然后在读入内存时解密,对于启用了透明数据加密的数据库备份文件,也使用数据库加密密钥进行了加密,要恢复已加密的数据库,用户必须有权访问用于加密数据库的证书或非对称密钥。如果没有证书或非对称成密钥将无法恢复数据库,所以务必保留访问相关备份所需的任意密钥。
图3 透明数据加密的体系结构