李树文,吴小强,盛震宇,邢 朦
(1.中国船舶重工集团公司第七二四研究所,南京 2111532.海军驻南京地区雷达系统军事代表室,南京 211153)
基于RBAC模型的雷达系统数据库用户管理软件的架构设计与实现
李树文1,吴小强2,盛震宇1,邢 朦1
(1.中国船舶重工集团公司第七二四研究所,南京 2111532.海军驻南京地区雷达系统军事代表室,南京 211153)
针对现代雷达系统综合化和信息化的发展趋势,分析了数据库在雷达系统中的重要性。基于RBAC模型设计实现了雷达系统数据库用户管理软件,使用后增加了数据库的安全性,提升了相关工作人员的工作效率,在相关领域具有较好的应用价值。
数据库;角色访问控制;用户权限管理;雷达系统;RBAC模型
目前,作为主要的探测设备,雷达已经在感知领域得到非常广泛的应用。这些雷达在日常使用过程中会产生大量有用的目标数据、环境数据等信息。数据库作为存储和管理数据的软件平台,汇集了海量的雷达感知信息。通过对这些雷达数据常态化的收集、整理、积累和知识挖掘,可提高雷达目标感知能力和重要的数据支撑能力。在数据库的使用中如何对数据库用户进行有效管理变得越来越重要。构建强健的权限管理软件、保证管理信息系统的安全性是十分重要的。同时,各个用户需要对数据库操作的功能都不尽相同,如果不对用户的操作权限作出限制,将会导致用户对数据库的滥用,不仅不好管理,也很难做到各司其职。另外,基于各种可能的原因,用户的操作权限往往不是固定的,经常会发生变化。显然,其相应的操作权限也应该随之发生变化,所以对用户的权限管理必须做到动态分配,这样管理者可以根据情况来动态分配用户的操作权限。本文基于RBAC思想设计的雷达设备系统用户管理软件能够满足上述管理的要求。
军用雷达系统对安全问题有很高的要求。雷达系统数据库是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁。构建强健的权限管理系统、保证数据库系统的安全性是十分重要的。传统的访问控制方法DAC(Discretionary Access Control,自主访问控制模型)、MAC(Mandatory Access Control,强制访问控制模型)难以满足复杂的企业环境需求。因此,NIST(National Institute of Standards and Technology,美国国家标准化和技术委员会)于上世纪90年代初提出了基于角色的访问控制方法(RBAC)。 RBAC是一种可扩展的访问控制模型,通过引入角色来对用户和权限进行解耦,简化了授权操作和安全管理。它是目前公认的解决大型企业的统一资源访问控制的有效访问方法。角色是一系列权限的集合,也是进行用户管理的单元。像授权一样,可以把一个角色授予一个用户。该用户将从角色继承这个角色拥有的权限。在RBAC(Role Based Access Control)中,许可Permissions(权限)就是允许对一个或多个客体执行的权力,如图1所示。
图1 RBAC基本模型
RBAC的基本思想就是把整个访问过程分为两步:访问权限与角色关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。RBAC对访问权限的授权由系统管理员统一管理。系统管理员根据单位中不同的岗位定义不同的角色,用户根据其职能和责任被赋予相应的角色。一旦用户成为某角色的成员,则此用户可以完成该角色所具有的职能。由于RBAC实现了用户与访问权限的逻辑分离,因此它极大地方便了权限管理的复杂性。可根据用户的实际工作岗位将用户与角色关联,一方面定义角色、增加删除角色中的用户易于操作,另一方面可以通过更改角色的权限实现大批量用户权限的更新。在实际应用中,由于角色/权限之间的变化比用户/角色之间的变化要慢得多,当一个用户的职位发生了变化,只有将用户当前的角色去掉加入代表新职务的角色即可。因此,RBAC的优点是可以大大简化应用程序的权限管理,实现权限的动态管理。同时,这种面向对象的权限分离思想使开发出来的访问控制软件的通用性和可复用性更强,最大限度地避免了开发人员的重复性工作[1]。
图1中RBAC 基本模型包括5 个基本数据元素:用户、角色、资源、控制、授权。它们之间的关系如下:用户被分配一定角色,角色被分配一定许可权,会话是用户与激活的角色集合之间的映射,用户与角色间的关系定义和角色与权限间的关系定义无关。鉴于RBAC模型的优点,本文基于上述RBAC思想进行本软件的设计。
2.1 数据库用户管理软件设计
本软件采用3层架构模式设计。根据应用逻辑将软件功能抽象成3层,即用户界面层、问题领域层、数据层[2-3]。用户界面层负责提供数据库用户操作和控制,同时对数据库用户的各类信息进行实时显示和查询。问题领域层主要完成用户数据和用户权限等信息数据的解析、转发、加工等,同时通过数据访问软件单元完成对数据库中数据的插入、更新等操作。数据层一般封装数据库中的选择、添加、更新、删除操作,同时还为用户界面层提供访问数据库的接口和函数,例如数据的备份、还原、导出、导出、分析、统计等接口。其软件架构整体示意图如图2所示。实际中为了提高程序的执行效率,所有的数据库操作都是通过调用存储过程来实现的。本文中主要设计实现的为灰色标示的软件单元。
图2 用户管理软件整体架构示意图
2.2 数据库用户管理软件内各软件单元设计
该软件各软件单元组成框图如图3所示。
图3 用户管理软件内软件单元设计图
数据库用户管理软件主要分为用户权限管理软件单元和用户数据管理软件单元。其中用户管理软件子单元分为删除用户、查询用户和角色分配3个子软件单元,主要负责各类用户的删除、合法性验证及为用户分配角色。用户管理单元中并没有增加用户子单元的功能,主要是由用户注册单元来实现的。权限管理软件子单元分为角色管理和访问控制两个子单元。角色管理单元负责管理各类角色(增加、删除、修改),为角色授予相应信息服务单元的使用权限,删除角色的某个单元的使用权限等。访问控制单元是保证信息安全的关键,用户登录时经身份验证后,系统根据用户具有角色的信息服务单元的使用权限自动生成访问权限集,使得用户能够访问授权的信息,拦截对没有授权信息服务的访问。用户数据管理软件单元主要完成系统用户数据的管理,其中数据格式转换子单元提供不同数据库间数据格式的转换,方便不同类型数据库对数据的共享。管理员数据维护软件子单元完成对数据库管理员核心数据的管理,如账号、密码等。 用户数据管理软件子单元完成用户登录数据库等活动规律的统计、分析,为管理员提供决策支持。本软件通过上述各个软件单元协调完成雷达数据库用户权限和数据的管理工作,其业务处理流程如图4所示。
3.1 数据库设计
为了实现基于 RBAC 的访问控制模型,将用户、角色、用户和角色的关系、权限、角色和权限的关系等信息保存到数据库中来提高软件管理及数据库访问的效率[4]。在数据库中设计了5 个权限控制相关的表。
图4 用户管理软件业务流程图
列名数据类型长度 描述备注User_IDInt10用户ID主键PKUser_Namevarchar20用户账号User_Passwordvarchar50用户密码User_NumberInt20用户部门编号User_Emailvarchar20用户邮箱Reservedvarchar50保留
用户信息表用来记录用户相关信息,如用户名、密码等,权限是被分离出去了的。用户要拥有对某种资源的权限必须通过角色(Role)去关联,随用户的添加与删除动态变化。
表2 角色信息表Globe_Roles
角色信息表存储系统角色集,随角色的添加与删除动态变化。角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限。
表3 用户角色表Globe_User_Roles
用户角色表就是用来描述他们之间隶属关系的对象。用户(User)通过角色(Role)关联所拥有对某种资源的权限,一个用户(User)可以隶属于多个角色(Role),一个角色组也可拥有多个用户。
表4 权限表Globe_Permissions
权限表存储系统权限集,权限指用户根据角色获得对系统某些资源的操作。角色权限信息表存储角色对应的权限信息,随角色及对应权限的变化而动态变化。
表5 角色权限表Globe_Role_Permissions
由于角色是可以继承的,所以将软件功能单元组织成树形结构。每个单元对应一个菜单。菜单之间的父子关系直接反映了单元之间的父子关系。在数据库中用一张表来存储这种结构,5个表的ER(Entity Relationship Diagram)如图5所示。
图5 表之间的ER图
3.2 核心类UML类图设计
本软件的核心类的UML类图设计如图6所示。用户信息管理类主要完成用户信息建立、用户信息修改、用户信息删除等功能。角色信息管理类主要完成角色信息建立、角色信息删除等功能。权限信息管理类主要完成权限信息建立、权限信息删除等功能。用户角色管理类主要完成用户角色授予、用户角色删除等功能。角色权限管理类主要完成角色权限授予、角色权限删除等功能。用户权限信息管理类主要完成通过用户ID得到用户角色和权限集合的功能。用户认证类主要完成认证用户登陆、角色是否存在检查、用户是否有访问权限检查、用户正常退出、用户异常退出等功能。
图6 UML类图
用户登录采用窗体式验证,负责提供用户的身份验证,如图7所示。验证登录后根据用户在系统中所扮演的角色,取出该用户对应的权限集,动态生成该用户对应本软件的操作界面。
图7 软件登录验证界面
本文以RBAC的思想,采用多层架构设计了一个根据不同的用户、不同的角色权限动态生成用户权限菜单的数据库用户管理软件,用户只能操作自己有权限的模块,无权限的模块对用户不可见,不同的用户进入的界面不同。这提高了系统的安全性和可靠性。该软件已成功运用于实际工作中,能满足管理要求,使用后减少相关部门和相关工作人员的劳动强度,并增加工作效率,提高了数据库的管理信息化水平,具有较好的通用性和推广利用的价值。
[1] 温昱.软件架构设计[M]. 北京:电子工业出版社,2012:218-222
[2] Martin Fowler. 企业应用架构模式[M].王怀民,周斌译.北京:机械工业出版社,2010:122-163.
[3] Martin Fowler. 重构:改善既有代码的设计[M].熊节译.北京:人民邮电出版社,2010:126-312
[4] 赵振平.ORACLE数据库精讲与疑难解析[M].北京:电子工业出版社,2013:439-530
Design and implementation of database user managementsoftware of radar system based on RBAC model
LI Shu-wen1, WU Xiao-qiang2,SHENG Zhen-yu1, XING Meng1
(1.No.724 Research Institute of CSIC, Nanjing 211153;2. Military Representatives Officeof Radar System of the PLA Navy in Nanjing,Nanjing 210003)
In view of the integrated and information development trends of modern radar systems, the importance of the database is analyzed in the radar system. The database user management software of the radar system is designed and realized based on the RBAC model, which can increase the security of the database and improve the working efficiency of the staff, having preferable application value in some relevant fields.
database; role access control; user permission management; radar system; RBAC model
2017-01-10;
2017-01-20
李树文(1982-),男,高级工程师,硕士,研究方向:雷达显控、数据存储;盛震宁(1989-),男,助理工程师,硕士,研究方向:雷达显控、数据存储;邢朦(1988-),女,工程师,硕士,研究方向:雷达显控。
TP31
A
1009-0401(2017)01-0060-04