论文部分内容阅读
[摘 要]多数应用软件系统后端的业务数据在被用户访问的同时还必须进行授权保护,即只允许被授权的用户访问指定的业务数据。为了减少多套系统相似功能的重复开发,本文根据现状从用户实际应用需求出发,对平台数据库设计、权限的分配应用等技术进行了研究,设计了用户访问权限管理平台建设方案。最终,研究成果随着各个系统的发布使用,取得了良好的应用效果。
[关键词]数据访问,权限控制,管理平台
中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2017)01-0268-01
1、现状分析
目前,胜利油田勘探、开发板块各专业的数据和应用都比较丰富。但在众多软件系统中,每一套系统都有他独立的用户访问权限管理机制,而这些机制在需求、功能设计方面都有着相似性。为了减少功能的重复开发,提高系统资源的共享,将权限控制部分抽取出来建立一套独立运行的统一管理平台,由一位管理员负责授权应用,既能减少了软件开发的过程,又能提高后期的应用效率。因此,权限管理平台的建设是十分必要的。权限控制管理平台定位如图1所示。最终建设目标是为不同系统、不同用户多条件、多角色组合授权。
2、建设内容
2.1、数据库设计
软件系统中需要被控制权限的对象是用户。用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,是多对多的关系。最终能够起作用的权限是用户所具有的角色所具有权限的并集。因此,访问控制数据库中的表,可以分为三大类:用户描述表、角色管理表、访问权限表。
用户描述表:用户帐号表Plat_User,包含字段:用户代码、用户登录名、用户密码。单位信息表Plat_Dept,包含字段:单位代码、单位名称。用户基础信息表Plat_UserInfo,包含字段:用户代码、真实姓名、性别、邮箱、单位代码、部门、电话。
角色管理表:角色表Plat_Role,包含字段:角色代码、角色名、角色类型、描述等。用户角色对应表Plat_UserInRole,包含字段:角色代码,用户代码。
访问权限表:记录表Plat_DatasetRecords,包含字段:数据集代码、记录集、数据项代码、数据值、备注。数据管理表Plat_Permission_Dataset,包含字段:数据权限代码、指定数据代码、操作。记录数据关联表Plat_Specified DatasetRecords,包含字段:指定数据代码、数据集代码。模块(系统)管理表Plat__Module,包含字段:模块代码、模块名称、模块类型、描述。模块数据授权表Plat_ModuleUseDataset,包含字段:模塊代码,数据权限代码。权限模块对应表Plat_Permission_Module,包含字段:权限代码,模块代码,操作。角色授权表Plat_DataRoleHasPermission,包含字段:角色代码,权限代码。
2.2、权限的管理
软件系统中,用户对资源(数据)的访问权限只有两种类型:有权限(可以访问),或没有权限(拒绝访问)。为易于实现,在平台权限管理中只指定“有权限”,即当在权限数据库中存在用户与一个资源的关联的时候,则用户对该资源有访问权限。
创建数据集即创建具体的数据查询条件,例如:能够确定可查询哪个单位或者某一字号开头的数据。创建数据权限为数据指定查询、编辑等操作。指定记录集权限将条件和操作关联,这时,某一字号开头的井号就可以编辑了。模块管理顾名思义各个系统或者模块在这集中管理。模块与数据关联节点完成后,在某一模块中可以具体访问到数据。最后依次将模块赋予具体权限名称,与角色、用户绑定结束授权。
2.3、平台的应用
根据权限管理各节点功能的分配,设计开发平台的模块,实现后能够为系统用户进行授权。授权后,在各个软件系统中的应用需要对授予的权限进行解析。例如:
string userID = “zc-gqj”;
string moduleID = “图形导航”;
string moduleManipulateID = “应用”;
string datasetID = “采油厂”;
string dataManipulateID = “查询”;
List fieldValueList = new List();
try
{
fieldValueList = CommonPermissionCtrl.GetFieldValuseList(userID, moduleID, moduleManipulateID, datasetID, “采油厂名”, dataManipulateID);
}
该方法为用户名为”zc-gqj”的用户登录系统后,可以应用图形导航模块查询该用户所在采油厂相关的数据。具体实施过程中,根据数据的所属单位代码与登录人员的单位代码进行匹配查询。另外,如果把”采油厂名”换做”井名”,可以根据授权的井号进行查询,从而做到不同用户登录看到不同的数据内容。
3、结论
总之,平台的建设制定了灵活的权限分配方案,改变了过去权限管理模式,完成了按权限申请针对不同用户可以多条件、多角色组合授权的建设目标。研究成果随着胜利油田勘探信息集成系统内各组件的发布已在勘探、开发领域进行了应用,获得了较好的使用效果。
[关键词]数据访问,权限控制,管理平台
中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2017)01-0268-01
1、现状分析
目前,胜利油田勘探、开发板块各专业的数据和应用都比较丰富。但在众多软件系统中,每一套系统都有他独立的用户访问权限管理机制,而这些机制在需求、功能设计方面都有着相似性。为了减少功能的重复开发,提高系统资源的共享,将权限控制部分抽取出来建立一套独立运行的统一管理平台,由一位管理员负责授权应用,既能减少了软件开发的过程,又能提高后期的应用效率。因此,权限管理平台的建设是十分必要的。权限控制管理平台定位如图1所示。最终建设目标是为不同系统、不同用户多条件、多角色组合授权。
2、建设内容
2.1、数据库设计
软件系统中需要被控制权限的对象是用户。用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,是多对多的关系。最终能够起作用的权限是用户所具有的角色所具有权限的并集。因此,访问控制数据库中的表,可以分为三大类:用户描述表、角色管理表、访问权限表。
用户描述表:用户帐号表Plat_User,包含字段:用户代码、用户登录名、用户密码。单位信息表Plat_Dept,包含字段:单位代码、单位名称。用户基础信息表Plat_UserInfo,包含字段:用户代码、真实姓名、性别、邮箱、单位代码、部门、电话。
角色管理表:角色表Plat_Role,包含字段:角色代码、角色名、角色类型、描述等。用户角色对应表Plat_UserInRole,包含字段:角色代码,用户代码。
访问权限表:记录表Plat_DatasetRecords,包含字段:数据集代码、记录集、数据项代码、数据值、备注。数据管理表Plat_Permission_Dataset,包含字段:数据权限代码、指定数据代码、操作。记录数据关联表Plat_Specified DatasetRecords,包含字段:指定数据代码、数据集代码。模块(系统)管理表Plat__Module,包含字段:模块代码、模块名称、模块类型、描述。模块数据授权表Plat_ModuleUseDataset,包含字段:模塊代码,数据权限代码。权限模块对应表Plat_Permission_Module,包含字段:权限代码,模块代码,操作。角色授权表Plat_DataRoleHasPermission,包含字段:角色代码,权限代码。
2.2、权限的管理
软件系统中,用户对资源(数据)的访问权限只有两种类型:有权限(可以访问),或没有权限(拒绝访问)。为易于实现,在平台权限管理中只指定“有权限”,即当在权限数据库中存在用户与一个资源的关联的时候,则用户对该资源有访问权限。
创建数据集即创建具体的数据查询条件,例如:能够确定可查询哪个单位或者某一字号开头的数据。创建数据权限为数据指定查询、编辑等操作。指定记录集权限将条件和操作关联,这时,某一字号开头的井号就可以编辑了。模块管理顾名思义各个系统或者模块在这集中管理。模块与数据关联节点完成后,在某一模块中可以具体访问到数据。最后依次将模块赋予具体权限名称,与角色、用户绑定结束授权。
2.3、平台的应用
根据权限管理各节点功能的分配,设计开发平台的模块,实现后能够为系统用户进行授权。授权后,在各个软件系统中的应用需要对授予的权限进行解析。例如:
string userID = “zc-gqj”;
string moduleID = “图形导航”;
string moduleManipulateID = “应用”;
string datasetID = “采油厂”;
string dataManipulateID = “查询”;
List
try
{
fieldValueList = CommonPermissionCtrl.GetFieldValuseList(userID, moduleID, moduleManipulateID, datasetID, “采油厂名”, dataManipulateID);
}
该方法为用户名为”zc-gqj”的用户登录系统后,可以应用图形导航模块查询该用户所在采油厂相关的数据。具体实施过程中,根据数据的所属单位代码与登录人员的单位代码进行匹配查询。另外,如果把”采油厂名”换做”井名”,可以根据授权的井号进行查询,从而做到不同用户登录看到不同的数据内容。
3、结论
总之,平台的建设制定了灵活的权限分配方案,改变了过去权限管理模式,完成了按权限申请针对不同用户可以多条件、多角色组合授权的建设目标。研究成果随着胜利油田勘探信息集成系统内各组件的发布已在勘探、开发领域进行了应用,获得了较好的使用效果。