论文部分内容阅读
随着互联网和移动互联网的发展,涉及数据库的应用程序越来越多。无论是Web或Wap开发应用中的动态网页,还是传统的C/S结构的应用程序都需要数据库来存储数据和管理数据。当前各行各业都有大量的数据,对数据库访问的安全性是目前数据库研究的热点。数据的存储和管理都涉及到安全性问题,即数据在存储时的数据库的安全,和数据访问过程中的数据安全,这两个过程也是经常发生安全性问题的地方。
论文以关系型数据库作为交互过程的数据库,研究交互过程中的数据安全,重点研究使用SQL查询的安全性问题。应用程序(以C++应用为例)使用SQL语句与关系型数据库交互,将SQL查询语句以字符串形式传递给数据库,数据库引擎接收到字符串后,经过查询编译阶段,查询执行阶段后,以结果集的形式返回查询结果。在使用SQL语句进行访问数据库时,因为SQL语句的编写不当会产生很多问题,如类型错误、语法错误甚至存在数据安全漏洞。论文对使用SOL查询产生的安全问题进行分析研究,并对该问题已有的解决方案从多个角度进行分析比较各方案的优势和劣势。分析结果表明,产生该问题的根本原因是,SQL查询的生成依赖开发人员,而SQL的查询执行依赖数据库,缺乏一种有效的机制来保证生成的SQL查询在执行时的安全性。
论文研究并设计一种安全的SQL查询模型。模型不需嵌入外部工具软件,通过对C++语言进行扩展,提供一种生成机制来保证SQL查询生成和执行期间的安全性。模型提供开发人员关系代数运算接口编写关系运算,在编译期由编译器对关系代数运算进行检查,再通过模型原型系统将关系代数转换成SQL查询。模型将SQL查询错误提前到编译期分析处理,确保传给数据库的SQL查询在执行时是安全的、正确的。
论文为研究设计模型原型,主要做以下几项工作:1.研究关系型数据库对SQL查询的处理,根据SQL查询在交互过程中带来的问题及解决方案,提出模型设计思想。2.研究基于模型的设计方法。模型对关系代数的运用,模型设计工具的选取。根据C++语言特性如重载、模板等,及编译器相关如编译过程和过程中错误异常处理等,研究模型的重载设计和模板设计方法。3.研究基于模型的实现与应用。描述基于模型的重载设计方法和模板设计方法的具体实现。模型的应用场景和应用方式,并对模型应用分析,进一步分析SQL查询和关系代数转换方面的优化工作。