论文部分内容阅读
数据权限是细粒度的访问控制技术,它的作用是控制不同类型的主体使用同一功能却看到不同的数据。现有的数据权限解决方法没有一种统一的方法,一般都是通过硬编码这种侵入性很强,无法灵活配置的方法来控制,而在软件即服务(Software as a Service,SaaS)模式上更是缺乏对数据权限的研究。由于SaaS软件具有数据高度集中租户可定制等特点,和传统软件比起来它具有许多不同的特性,已有数据权限的方法并不是很适合直接使用在SaaS软件上。目前已有的数据权限控制方法应用在SaaS模式上会出现诸多不足之处,如无法实现租户可定制特点,无法统一管理多个SaaS应用数据权限等问题,为了解决以上问题,本文主要做了如下工作:1.建立适用于SaaS模式的数据权限系统模型。本文首先对已有数据权限的解决方法进行了研究和介绍,在研究的基础上分析了他们的各自的不足之处。根据SaaS模式的特点,结合实验室多应用多租户多因素数据平台(Multi-application、Multi-tenant、and Multi-factor Data Platform,3MDP)提出的需求,使用“4+1”视图方法对数据权限系统模型进行系统架构上的分析和建立。2.数据权限系统关键问题的研究和解决。首先对多租户多应用场景下的数据存储问题进行分析和选择,然后归纳了对数据权限有影响的因素。采用SQL注入方式来控制关系型数据库的数据权限,使用数据集合过滤方法来控制非关系型数据库的数据权限。使用面向切面编程(Aspect Oriented Programming,AOP)方法解决SaaS应用使用数据权限系统的问题。在可配置的问题上改进了一种基于JSON(JavaScript Object Notation)的数据交换方式,使得其不仅可以使用在多SaaS应用的环境下,而且数据权限配置设计更加合理简单。3.给出数据权限系统的设计与实现,并对其进行测试。利用前文的研究建立数据权限系统,给出系统各个模块的类图还有UI设计,并使用三个SaaS应用及多个租户和用户对其进行测试。经过实验测试数据权限控制中心可以同时管理多个SaaS应用不同租户的数据权限,并且经过对比表明使用数据权限控制中心来实现数据权限可以大大减少代码量,提高SaaS软件的开发速度。