概述:通过对<font color="#212121"><font color="#E65100"><b>数据库前端部署数据库</b><b>加密网关</b></font></font>,或者通过扩展数据库<b><font color="#E65100">访问驱动(如JDBC驱动)</font></b>实现数据库加密
优点
这种方式理论上能够支持所有的数据库,是一种通用的解决方案,且安全性更高
技术瓶颈
由于在安全增强代理中需要存储加密数据,因此要解决与<b><font color="#E65100">数据库存储数据的一致性</font></b>问题,这基本不可实现。
数据的<font color="#E65100"><b>联合检索问题</b></font>:由于在数据库内外都存在数据,这些数据的联合检索将变得很困难;SQL语法的完全兼容也非常困难
<font color="#E65100"><b>开发无法透明问题</b></font>:数据库协议虽然存在标准,但事实上每个不同的数据库版本都会进行若干变更、扩展和增强,使用了这些特性的用户必须进行改造。同时在安全代理中对数据库通讯协议的模拟非常困难。
数据库的<font color="#E65100"><b>优化处理、事务处理、并发处理</b></font>等特性都无法使用:查询分析、优化处理、事务处理、并发处理工作都需要在安全增强器中完成,无法使用数据库在并发处理和查询优化上的优势,系统的性能和稳定性更多地依赖于安全代理;
对于对<b><font color="#E65100">存储过程、触发器、函数等存储程序的实现</font></b>支持也非常困难。
总结:<br>
该技术需要在安全代理服务层提供非常复杂的数据库管理功能,如:SQL命令解析,通讯服务,加密数据索引存储管理、事务管理等等,因此存在巨大的开发工作量及很高的技术复杂度,此外还有类似于存储过程、触发器等无法解决的技术问题