1、保证数据库系统的整体性能没有明显下降
众所周知,数据库系统的数据处理性能对整个业务系统的整体性能表现有决定性的作用,在某些场合,数据库必须保证处理能力维持在某个较高水平才能满足业务需要。另一方面,数据库加密系统是一个对数据库中数据进行加密保护的应用系统,在数据从业务系统存储到数据库时要对数据进行加密,这个过程中明文数据需要被加密成密文,在数据由数据库中被读取出来传递到业务系统时要对数据进行解密,这个过程中密文需要被解密成明文。加密和解密是个根据一定的算法逻辑进行循环运算的过程,这个过程对CPU会产生一定的消耗,会影响数据库的性能。
数据库加密系统可以有多种技术路线来实现,业界已经验证和使用的技术路线包括应用系统加密、前置代理加密、后置代理加密、表空间透明数据加密、文件系统加密和磁盘加密。其中应用系统加密和前置代理加密技术会极大地影响数据库性能,仅适用于小量数据加密场景;后置代理加密技术在某些场景上也会大幅影响数据库性能,使用场景有明显限制;所以,好的数据库加密系统应该尽量使用后三种技术路线来实现。
2、保证数据安全
保存在数据库中的数据是用户的资产,因此,任何一个数据库加密系统都需要保证在有密钥的前提下能够对由自己加密的数据进行无损解密。因此,一个好的数据库加密系统应该具备密钥备份和恢复功能,以便于在加密机故障不可用时能够快速搭建新的加密机环境;另外,如果数据库加密系统提供了独立的工具或接口来实现加密机故障时用户数据的解密,则是更好的选择。
3、应用完全透明
数据库系统是为业务系统提供数据服务的,一个好的数据库加密系统应该对应用系统具备完全的透明性,这种透明性主要表现在:(1)部署数据库加密系统时,应用系统不需要做任何改造,即使是连接字符串都不需要修改;(2)在部署了数据库数据库加密系统后,数据库内部的存储过程、用户自定义函数、触发器、SQL代码段等可执行对象及主外键关系、各种索引、默认值、Check约束等均可以正常使用,也不需要做任何改变;(3)数据库自身的外围管理工具、第三方数据库工具等在部署数据库加密系统后仍然可以正常使用。
4、高可用性
数据库加密系统自身应具备高可用能力,可以以主备或多机的方式提供数据库加密服务,当其中的一台加密机发生故障时,其它加密机应可能快速接管加密服务,保证数据库系统和用户业务系统的可用性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)