大型数据库管理系统的平台通常为Windows NT与UNIX,这些操作系统的安全级别通常为C1、C2级。尽管数据库管理系统在操作系统的基础上加大了很多的安全措施,不过操作系统与DBMS对数据库文件的有效保护手段还是不足,有经验的黑客会避开,直接用操作系统工具窃取或篡改数据库文件。此隐患造成的损害通常数据库用户很难发觉。
由相关资料报道,大多数的计算机犯罪源自系统内部。在传统的数据库系统中,管理员的权限无出其右,他不只承担各项系统管理工作,还能查询库中的所有信息。因此,不少系统以各种手措施来减弱系统管理员的权限。实现数据库加密后,各用户的数据由其自己的密钥加密,数据库管理员得到的信息不能正常解密,所以确保了用户信息的安全。除此之外,经过加密,数据库的备份信息变成密文,从而可以降低由于备份介质被盗或丢失出现的损失。由此可知,企业安全管理的数据库加密是无法缺少的。
也许有人认为,加密数据库后会非常影响系统的效率,使其无法承受,不过事实并不是这样的。若在数据库客户端进行数据加/解密运算,对数据库服务器的负载与系统的运行几乎无影响。在普通个人电脑上,用纯软件实现DES加密算法的速度超过200KB/s,若对一篇1万汉字的文章进行加密,其加/解密时间仅需110s,这种时间延迟用户几乎没有感觉。现在,加密卡的加解密速度通常为1Mbit/s,对中小型数据库系统来说,这个速度尽管在服务器端加解密数据也是可行的,由于通常的关系数据项均不是太长。
Microsoft SQL Server有两个级别的加密:数据库级别与单元级别。两个都用密钥管理层次结构。单元级加密现今还被完全支持,其是作为一系列内置函数执行,有一个密钥管理层次结构。此加密是个手动的处理过程,它需重新设计应用程序架构来调用加、解密功能。此外,图表必须进修改,使数据存储为数据类型,然后在读取时把它改回合适的数据类型。加密的传统约束是在此方法中的,即无法用自动的查询优化技术。
透明数据加密可实时加密数据与日志文件。数据在被写进磁盘前加密,当从磁盘读出时解密。透明数据加密的“透明”指加密是通过数据库引擎进行的,但SQL Server客户端一点不清楚。要加密与解密没有必要编写任何代码。仅需执行两个步把数据库给TDE准备好,然后加密就由ALTER DATABASE命令在数据库级别开启了。