首页> 中国专利> 数据权限管理方法、数据权限管理系统以及业务管理系统

数据权限管理方法、数据权限管理系统以及业务管理系统

摘要

本发明公开了一种数据权限管理方法、数据权限管理系统以及业务管理系统,涉及计算机技术领域。本发明的方法包括:数据权限管理系统接收业务系统拦截的用户的数据访问请求;通过解析数据访问请求获取用户欲访问的对象;从权限配置信息查找用户对欲访问的对象的访问权限信息;将访问权限信息与数据访问请求进行合并,并返回至业务系统,以便业务系统继续处理带有访问权限信息的数据访问请求。本发明实现了数据权限管理系统对各个业务系统的数据权限的统一和集中管理,便于管理和维护。

著录项

  • 公开/公告号CN105912949A

    专利类型发明专利

  • 公开/公告日2016-08-31

    原文格式PDF

  • 申请/专利号CN201610225858.7

  • 发明设计人 周华旗;

    申请日2016-04-13

  • 分类号G06F21/62(20130101);G06F17/30(20060101);

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人许蓓

  • 地址 100080 北京市海淀区杏石口路65号西杉创意园西区11C楼东段1-4层西段1-4层

  • 入库时间 2023-06-19 00:22:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-05

    授权

    授权

  • 2016-09-28

    实质审查的生效 IPC(主分类):G06F21/62 申请日:20160413

    实质审查的生效

  • 2016-08-31

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,特别涉及一种数据权限管理方法、数据权限管理系统以及业务管理系统。

背景技术

权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。权限管理分为两大类,功能级权限控制和数据级权限控制,其中,数据权限解决的是主体能对哪些数据进行操作的问题,例如,用户只能查看本人的所有订单信息而不能查看其他人的订单信息。

不同业务系统支持的数据库类型可能不同,例如多个业务系统分别支持Oracle、Mysql、SQL server等,甚至一些业务系统支持非关系型数据库进行数据存储。这种数据库的差异性和个性化导致每个业务系统对于数据权限的控制都需要自己处理,管理和维护比较困难。例如,以硬编码方式实现的业务系统的数据权限管理,数据权限管理逻辑以if/else等形式与本系统的业务逻辑耦合在一起,每个业务系统都需要单独实现本系统的数据权限管理逻辑,管理和维护比较困难。

发明内容

本发明所要解决的其中一个技术问题是:如何实现各个业务系统的数据权限的统一管理,以降低管理和维护的难度。

根据本发明的一个方面,提供的一种数据权限管理方法,包括:数据权限管理系统接收业务系统拦截的用户的数据访问请求;数据权限管理系统通过解析数据访问请求获取用户欲访问的对象;数据权限管理系统从权限配置信息查找用户对欲访问的对象的访问权限信息;数据权限管理系统将访问权限信息与数据访问请求进行合并,并返回至业务系统,以便业务系统继续处理带有访问权限信息的数据访问请求。

在一个实施例中,数据权限管理系统从权限配置信息查找用户对欲访问的对象的访问权限信息包括:数据权限管理系统从权限配置信息查找欲访问的对象对应的权限配置列表,权限配置列表包括权限分配对象、权限类型和权限表达式;数据权限管理系统在权限配置列表的权限分配对象中查找到用户,如果数据访问请求中包含的用户操作与权限配置列表中该用户已配置的权限类型匹配,则从权限配置列表中提取用户对应的权限表达式。

在一个实施例中,数据权限管理方法还包括:数据权限管理系统采集业务系统的数据库信息;数据权限管理系统根据业务系统的数据库信息从业务系统的数据库抓取权限配置相关的元数据信息;数据权限管理系统根据抓取的元数据信息进行权限配置以形成权限配置信息。

在一个实施例中,数据权限管理系统采集的业务系统的数据库信息包括数据库类型和数据库连接串;数据权限管理系统根据业务系统的数据库信息从业务系统的数据库抓取权限配置相关的元数据信息包括:数据权限管理系统根据数据库连接串连接到业务系统的数据库,并且根据数据库类型从业务系统的数据库抓取权限配置相关且与数据库类型对应的元数据信息,其中,元数据信息包括被访问对象信息及其属性信息。

在一个实施例中,元数据信息包括被访问对象信息及其属性信息;数据权限管理系统根据抓取的元数据信息进行权限配置包括:数据权限管理系统为被访问对象配置权限配置列表,并根据被访问对象的属性信息对其权限配置列表中的权限分配对象、权限类型和权限表达式进行配置以形成权限配置信息。

在一个实施例中,业务系统根据设置的系统过滤标识判断本业务系统是否需要进行数据访问过滤,如果需要,则对用户的数据访问请求进行拦截;或者,业务系统拦截用户的数据访问请求后,根据设置的对象过滤标识判断用户欲访问的对象是否需要进行数据访问过滤,如果需要进行数据访问过滤,则向数据权限管理系统发送数据访问请求。

根据本发明的第二个方面,提供的一种数据权限管理方法,包括:数据权限管理系统采集业务系统的数据库信息;数据权限管理系统根据业务系统的数据库信息从业务系统的数据库抓取权限配置相关的元数据信息;数据权限管理系统根据抓取的元数据信息进行权限配置以形成权限配置信息。

在一个实施例中,数据权限管理系统采集的业务系统的数据库信息包括数据库类型和数据库连接串;数据权限管理系统根据业务系统的数据库信息从业务系统的数据库抓取权限配置相关的元数据信息包括:数据权限管理系统根据数据库连接串连接到业务系统的数据库,并且根据数据库类型从业务系统的数据库抓取权限配置相关且与数据库类型对应的元数据信息,其中,元数据信息包括被访问对象信息及其属性信息。

在一个实施例中,元数据信息包括被访问对象及其属性信息;数据权限管理系统根据抓取的元数据信息进行权限配置包括:数据权限管理系统为被访问对象配置权限配置列表,并根据被访问对象的属性信息对其权限配置列表中的权限分配对象、权限类型和权限表达式进行配置以形成权限配置信息。

根据本发明的第三个方面,提供的一种数据权限管理系统,包括:数据访问过滤模块,和/或,数据权限配置模块;数据访问过滤模块包括:数据访问请求接收单元,用于接收业务系统拦截的用户的数据访问请求;数据访问请求解析单元,用于通过解析数据访问请求获取用户欲访问的对象;权限信息获取单元,用于从权限配置信息查找用户对欲访问的对象的访问权限信息;权限信息处理单元,用于将访问权限信息与数据访问请求进行合并,并返回至业务系统,以便业务系统继续处理带有访问权限信息的数据访问请求;数据权限配置模块包括:业务系统管理单元,用于采集业务系统的数据库信息;元数据抓取单元,用于根据业务系统的数据库信息从业务系统的数据库抓取权限配置相关的元数据信息;权限配置单元,用于根据抓取的元数据信息进行权限配置以形成权限配置信息。

在一个实施例中,权限信息获取单元,用于从权限配置信息查找欲访问的对象对应的权限配置列表,权限配置列表包括权限分配对象、权限类型和权限表达式;在权限配置列表的权限分配对象中查找到用户,如果数据访问请求中包含的用户操作与权限配置列表中该用户已配置的权限类型匹配,则从权限配置列表中提取用户对应的权限表达式。

在一个实施例中,业务系统管理单元采集的业务系统的数据库信息包括数据库类型和数据库连接串;元数据抓取单元,用于根据数据库连接串连接到业务系统的数据库,并且根据数据库类型从业务系统的数据库抓取权限配置相关且与数据库类型对应的元数据信息,其中,元数据信息包括被访问对象信息及其属性信息。

在一个实施例中,元数据信息包括被访问对象信息及其属性信息;权限配置单元,用于为被访问对象配置权限配置列表,并根据被访问对象的属性信息对其权限配置列表中的权限分配对象、权限类型和权限表达式进行配置以形成权限配置信息。

根据本发明的第四个方面,提供的一种业务管理系统,包括:业务系统以及前述第三方面中任一个实施例中数据权限管理系统,业务系统,用于对用户的数据访问请求进行拦截,将拦截的用户的数据访问请求发送至数据权限管理系统,并接收数据权限管理系统返回的带有访问权限信息的数据访问请求继续处理。

在一个实施例中,业务系统,还用于根据设置的系统过滤标识判断本业务系统是否需要进行数据访问过滤,如果需要,则对用户的数据访问请求进行拦截;或者,拦截用户的数据访问请求后,根据设置的对象过滤标识判断用户欲访问的对象是否需要进行数据访问过滤,如果需要进行数据访问过滤,则向数据权限管理系统发送数据访问请求。

本发明实现了数据权限管理系统对各个业务系统的数据权限的统一和集中管理,便于管理和维护。一方面,通过采集各个业务系统的数据库信息,并依据采集的信息从业务系统的数据库抓取权限配置相关的元数据信息,然后根据抓取的信息进行权限配置,实现了数据权限管理系统对各个业务系统的数据权限的统一和集中配置。另一方面,各个业务系统拦截的用户的数据访问请求均发送到数据权限管理系统,由数据权限管理系统基于权限配置信息统一对各个业务系统进行访问控制。此外,该集中管理模式还能够快速响应业务系统组织架构的变化和调整,实现数据权限的灵活管理。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本发明的一个实施例的业务管理系统的结构示意图。

图2示出本发明的一个实施例的数据权限管理方法的数据权限配置过程的流程示意图。

图3示出本发明的一个实施例的关系型数据库和非关系型数据库的对比示意图。

图4示出本发明的一个实施例的元数据抓取的统一建模语言类图。

图5示出本发明的一个实施例的数据权限管理方法的数据访问过滤过程的流程示意图。

图6示出本发明的一个实施例的数据权限管理系统的结构示意图。

图7示出本发明的一个实施例的数据权限管理系统进行数据权限配置的工作流程示意图。

图8示出本发明的另一个实施例的数据权限管理系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了实现各个业务系统的数据权限的统一管理,提出本方案。

图1是本发明业务管理系统的一个实施例的结构示意图。下面结合图1对本发明的业务管理系统的结构进行描述。

如图1所示,业务管理系统包括数据权限管理系统和业务系统1、业务系统2……和业务系统n。每个业务系统通过其数据库实现本系统内的数据存储。各个业务系统支持的数据库类型可以是相同的,也可以是不同的。每个业务系统可以支持一种或多种数据库类型。数据权限管理系统对各个业务系统的数据权限进行统一管理。其中,数据权限统一管理方法包括对各个业务系统进行统一的数据权限配置的过程以及数据访问过滤过程。下面分别描述对各个业务系统进行统一数据权限配置的过程以及数据访问过滤过程的实施例。

下面结合图2描述数据权限管理系统对各个业务系统进行统一的数据权限配置的过程。

图2为本发明数据权限管理方法的数据权限配置过程一个实施例的流程图。如图2所示,该实施例的方法包括:

步骤S202,数据权限管理系统需要把各个业务系统管理起来,采集各个业务系统的数据库信息。

其中,数据权限管理系统采集的业务系统的数据库信息包括数据库类型和数据库连接串,还可以包括例如业务系统名称、业务系统编码、数据存储方式(关系型数据库、非关系型数据库)等,参考表1中所示。表1为数据权限管理系统采集的各个业务系统的数据库信息的示例。其中,数据权限管理系统通过数据库连接串连接到相应的数据库,根据数据库类型从业务系统的数据库抓取对应的元数据信息以及根据数据库类型对业务系统进行数据权限配置。针对关系型和非关系型数据库,需要分别设置不同的连接方式连接到数据库,例如,关系型数据库可以通过JDBC(Java Data Base Connectivity,Java数据库连接)方式连接,而非关系型数据库则需要针对具体的数据库类型个性化编写连接程序。

表1

步骤S204,数据权限管理系统根据业务系统的数据库信息从业务系统的数据库抓取权限配置相关的元数据信息。

在一个实施例中,数据权限管理系统根据数据库连接串连接到业务系统的数据库,并且根据数据库类型从业务系统的数据库抓取权限配置相关且与数据库类型对应的元数据信息。

不同的数据存储方式对应的元数据也不相同。如图3中所示,以关系型数据库和非关系型数据库MongoDB为例,关系型数据库中抓取数据库(Database)信息、数据表(Table)信息和行信息。非关系型数据库MongoDB中抓取数据库(Database)信息、集合(Collection)信息和文档(Document)信息。关系型数据库中的数据表(Table)信息相当于MongoDB中的集合(Collection)信息,关系型数据库中的行信息相当于MongoDB中的文档(Document)信息。抓取的元数据信息可以返回给数据权限配置界面供权限管理人员在进行权限配置时进行选择,例如权限管理人员在数据权限配置界面通过下拉菜单等形式选择数据库、数据集、表、列等信息。

抓取的元数据信息主要用于后续的权限配置过程,因此,抓取的元数据信息主要包括被访问对象信息及其属性信息。如果是关系型数据库,数据权限管理系统从业务系统的数据库抓取权限配置相关的业务表信息及其字段信息;如果是非关系型数据库,数据权限管理系统从业务系统的数据库抓取权限配置相关的集合信息和键值(KEY)信息。其中,业务表信息例如包括表名,字段信息例如包括字段,如果该字段与数字相关(例如,字段为金额,该列存储具体的数字),字段信息还可以包括精确度和小数位数等信息。同理,集合信息例如包括集合名,键值信息例如包括键值,如果该键值与数字相关,键值信息还可以包括精确度和小数位数等。

基于上述数据权限管理系统从业务系统抓取元数据信息的方法,显然,除了可以抓取被访问对象信息及其属性信息,还可以根据不同的需求抓取其他的元数据信息。抓取的元数据信息例如可以包括以下几类,以关系型数据库为例:

Database(数据库):可以抓取例如数据库名称、类型、版本等

Schema(数据集):不同的关系型数据库中数据集略微不同(例如,Oracle:schema,MySQL:catalog,SQL Server:catalog.schema),可以抓取例如数据集的名称、模式等。

Table(数据表):可以抓取例如表名、类型、主键、外键、约束、触发器、索引和权限等。

Column(列):可以抓取例如名称、注释、是否为null、精度、小数位数、默认值等。

下面结合图4对元数据抓取的一个应用实施例进行描述。由于不同类型的数据库获取元数据的方式以及连接到数据库的方式不同,为了更好地进行扩展以便更好地适应数据库的类型更新,可以采取策略模式来实现不同数据库的元数据的抓取。如图4中所示,“MysqlDataSource”、“OracleDataSource”等都是包含实现获取数据库连接串函数的类,可以根据需要连接的数据库类型选择对应的类。同理,“MysqlMetaCrawler”、“OracleMetaCrawler”都是包含实现元数据抓取函数的类,可以根据需要抓取元数据类型的数据库类型选择对应的类。元数据抓取的逻辑实现如下:MetaLoader是整个抓取逻辑的主入口,通过实例化具体的数据源对MetaLoader进行实例化,例如,MetaLoader ml=new MetaLoaderImpl(MysqlDataSource),从而获取Mysql数据库的连接串并进行数据连接。然后通过MetaCrawlerFactory创建具体的元数据抓取实例,如MysqlMetaCrawler,具体的,通过创建的MetaCrawler实例AbstractMetaCrawler去获取该数据源下的数据表信息或者集合信息,以及表的字段信息或者键值信息,例如,关系型数据库一般通过DatabaseMetaData对象去获取这些元数据,非关系型数据库可以去做定制开发。然后,MetaCrawler返回抓取的元数据信息给MetaLoader,完成元数据抓取过程。

步骤S206,数据权限管理系统根据抓取的元数据信息进行权限配置以形成权限配置信息。

在一个实施例中,数据权限管理系统为被访问对象配置权限配置列表,并根据被访问对象的属性信息对其权限配置列表中的权限分配对象、权限类型和权限表达式进行配置以形成权限配置信息。

下面结合表2示例性的说明数据权限配置过程。如表2所示,数据权限管理系统根据权限管理员的发送的数据权限配置命令为需要进行权限配置的业务表或者集合生成一个权限配置列表,权限配置列表中包括权限分配对象、权限类型和权限表达式,根据需要还可以包括例如权限分配对象类型、权限表达式描述等,但不限于所举示例。其中,权限分配对象类型例如包括个人、角色、分组、职位、岗位或者部门等,还可以根据权限分配的粒度和影响的人员范围,按需划分为不同的类型。权限分配对象例如包括:根据个人、角色、分组、职位、岗位或者部门进行划分的单个分配对象或集合型分配对象。例如表2中根据个人划分的单个分配对象张三,根据部门划分的集合型分配对象财务部,包括财务部的所有员工。权限类型例如包括查询、修改、增加、删除,但不限于所举示例。优选的,权限表达式可以根据具体的数据库类型对应的语法生成的具体操作语句,例如,如果是关系型数据库生成的就是SQL条件语句(格式:字段+操作符+条件值,money>10000),如果是MongoDB生成的就是MongoDB语句(格式:字段名+“:”+条件值,如{age:33})。如表2中所示,例如权限表达式money>100000,数据权限管理系统生成该表达式时需要首先获取字段money,然后根据权限管理员的数据权限配置命令中的配置条件以及当前数据库的语法规则生成money>100000的权限表达式。权限配置列表也可以返回至数据权限配置界面以便权限管理员确认已配置的权限信息,其中权限表达式描述一项便是为了便于权限管理员确认而设置的。

表2

上述实施例的方法通过采集各个业务系统的数据库信息,并依据采集的信息从业务系统的数据库抓取权限配置相关的元数据信息,然后根据抓取的信息进行权限配置,实现了数据权限管理系统对各个业务系统的数据权限的统一和集中配置。便于对各个业务系统管理和维护,还能够快速响应业务系统组织架构的变化和调整,实现数据权限的灵活管理。此外,一些比较复杂的数据权限配置管理数据权限管理系统也能够实现。

数据权限配置过程的一个应用实施例如下:权限管理员登陆数据权限管理系统,进入数据权限配置界面选择需要配置的业务系统以及数据库,数据权限管理系统根据已经采集的各个业务系统的数据库信息,获取数据库连接串连接到该数据库,并对该数据库中的所有业务表的表信息进行抓取,将表名显示于数据权限配置界面供权限管理员选择,权限管理员选择一个业务表,数据权限管理系统对该业务表中的字段信息进行抓取,将字段显示于数据权限配置界面供权限管理员选择,权限管理员选择字段并输入配置条件,并通过显示界面选择权限分配对象和权限类型,数据权限管理系统根据数据库类型、字段信息和配置条件生成权限表达式,并与权限分配对象和权限类型关联生成一条权限配置信息写入该业务表的权限配置列表,完成数据权限配置过程。在该数据权限配置过程中,权限管理员可以通过数据权限配置界面进行选择,也可以直接输入数据权限配置命令;数据权限管理系统可以抓取元数据后进行显示供权限管理员选择,也可以在权限管理员选择后再去抓取相应的元数据,只要是通过步骤202至步骤206中描述的方法实现对多个业务系统的数据权限进行统一配置的过程都属于本发明要保护的范围。

从上述应用实施例可以看出,用户通过操作界面进行简单的操作即可对多个业务系统进行统一的数据权限配置工作,容易学习,易于掌握。

数据权限管理系统还可以基于权限配置信息对各个业务系统的用户的数据访问请求进行数据访问过滤,下面结合图5描述该情形。其中,数据访问过滤中应用的权限配置信息可以采用前述实施例描述的配置方法得到,也可以采用其他配置方法得到。

图5为本发明数据权限管理方法的数据访问过滤过程一个实施例的流程图。如图5所示,该实施例的方法包括:

步骤S502,用户向业务系统发送数据访问请求。

其中,所要访问的业务系统可能支持不同的数据库类型,因此数据访问请求可以是与不同数据库对应的操作语句,例如,如果业务系统支持关系型数据库,则数据访问请求可以为SQL语句,如果业务系统支持非关系型数据库如MongoDB,则数据访问请求可以为MongoDB语句。

步骤S503,业务系统根据设置的系统过滤标识判断本业务系统是否需要进行数据访问过滤,如果需要进行数据访问过滤,则执行步骤S504,如果不需要,则直接执行用户的数据访问请求。

根据业务需要可以选择性地设置系统过滤标识。通过设置系统过滤标识可以减少业务系统与数据权限管理系统之间交互,提高系统效率。当然,也可以不在业务系统设置过滤标识进行判断,则可以减少对业务系统的改动。

步骤S504,业务系统拦截用户的数据访问请求。

在一个实施例中,通过在业务系统配置拦截器对用户的数据访问请求进行拦截。

一种拦截器的应用示例如下:以业务系统支持的数据库类型的为关系型数据库为例,目前大部分支持关系型数据库的业务系统都采用Spring MVC、Spring、Mybatis等框架,并使用分层设计进行系统的构架设计,例如包括Controller(控制)层、Service(服务)层、DAO(DataAccess Object,数据访问)层,可以在DAO层设置拦截器对数据库操作语句进行拦截。业务系统例如要对所有的SQL语句进行拦截,可以对框架的拦截器Interceptor进行配置,指定要拦截的类对象、要拦截类的哪个方法和要拦截的方法参数集合,例如Mybatis中用拦截器实现对所有SQL语句进行拦截的方式:@Intercepts({@Signature(type=StatementHandler.class,method="prepare",args={Connection.class})})。

步骤S505,在业务系统设置对象过滤标识,业务系统拦截用户的数据访问请求后,对数据访问请求进行解析,获取用户欲访问的业务表或者集合,并查看该业务表或者集合的对象过滤标识,如果该业务表或者集合需要进行数据访问过滤,则业务系统将拦截的数据访问请求发送至数据权限管理系统,如果该业务表或者集合不需要进行数据访问过滤,则直接执行用户的数据访问请求。

根据业务需要可以选择性地设置对象过滤标识。通过设置对象过滤标识,可以减少业务系统与数据权限管理系统之间交互,提高系统效率。当然,也可以不在业务系统设置该过滤标识进行判断,则可以减少对业务系统的改动。

步骤S506,业务系统将拦截的数据访问请求发送至数据权限管理系统,相应的,数据权限管理系统接收业务系统拦截的用户的数据访问请求。

在一个实施例中,业务系统调用数据权限管理系统的接口将拦截的数据访问请求发送至数据权限管理系统。数据权限管理系统的接口例如可以是Web Service接口,但不限于所举示例。

根据安全需要,业务系统还可以选择性地对传输的信息进行签名,数据权限管理系统则相应的进行验签,以保证调用的合法性。根据安全需要,业务系统也可以选择性地对发送的数据访问请求进行加密,数据权限管理系统则按照相应的解密方法进行解密,以保证传输的可靠性,避免数据访问请求在传输过程被更改。

步骤S508,数据权限管理系统通过解析数据访问请求获取用户欲访问的对象。

其中,针对关系型数据库,数据权限管理系统通过解析数据访问请求可以获知用户欲访问的业务表的表名,对业务表的具体操作等信息;针对非关系型数据库,数据权限管理系统通过解析数据访问请求可以获知用户欲访问的集合名,对集合的具体操作等信息。

步骤S510,数据权限管理系统从权限配置信息查找用户对欲访问的对象的访问权限信息。

在一个实施例中,数据权限管理系统从权限配置信息查找欲访问的对象对应的权限配置列表,权限配置列表包括权限分配对象、权限类型和权限表达式;数据权限管理系统在权限配置列表的权限分配对象中查找到用户,如果数据访问请求中包含的用户操作与权限配置列表中该用户已配置的权限类型匹配,则从权限配置列表中提取用户对应的权限表达式;如果匹配不成功,则表明该用户没有欲进行的操作的权限。

例如,数据权限管理系统通可以通过用户ID等可以唯一标识该用户的标识在权限配置列表的权限分配对象中查找到用户。此外,在权限分配对象中查找不到该用户的情况下可以根据系统的默认设置进行相应的处理。例如,如果用户不在权限分配对象的范围内,可以默认设置该用户的权限不受限制,则将数据访问请求直接返回至业务系统执行即可;或者,也可以默认设置该用户对该业务表没有权限,因此不再将数据访问请求返回至业务系统执行。

步骤S512,数据权限管理系统将访问权限信息与数据访问请求进行合并,并返回至业务系统。其中,合并后的数据访问请求与业务系统的数据库类型相适应。

步骤S514,业务系统继续处理带有访问权限信息的数据访问请求。

步骤S516,业务系统将处理后的结果返给用户。

在上述实施例中,各个业务系统拦截的用户的数据访问请求均发送到数据权限管理系统,由数据权限管理系统基于权限配置信息统一对各个业务系统进行访问控制。实现了数据权限管理系统对各个业务系统的数据权限的统一和集中管理,便于管理和维护。此外,该集中管理模式还能够快速响应业务系统组织架构的变化和调整,实现数据权限的灵活管理。

数据访问过滤方法的一个应用实施例如下:用户欲查询订单表中的金额大于10000的订单号及其对应的金额,用户向业务系统发出数据访问请求后转换为SQL语句(假设订单表所在数据库为关系型数据库)为SELECT ORDER_ID,PRICE from Order where PRICE>100000。业务系统对该语句进行拦截后发送至数据权限管理系统,数据权限管理系统解析该语句获知用户欲操作的业务表为订单表,则查找订单表对应的权限配置列表,在权限分配对象范围内匹配该用户ID,获得对应的权限类型为查询,权限表达式为area=0001(表示该用户只能查看订单区域为华北的订单)。数据权限管理系统将权限表达式与用户的操作语句根据数据库类型进行合并,得到SELECT ORDER_ID,PRICE from Order wherePRICE>100000and area=’0001’,并将合并后的语句返回至业务系统执行,业务系统获取对应的业务数据返回给前段,则最终显示在用户面前的为订单表中金额大于10000并且订单区域为华北的订单号及其对应的金额。

本发明还提供一种数据权限管理系统,下面结合图6对本发明的数据权限管理系统的一个实施例进行描述。

图6为本发明数据权限管理系统一个实施例的结构图。如图6所示,该系统60包括:数据权限配置模块600,用于接收数据权限配置命令对各个业务系统的数据库中业务表进行数据权限配置。数据权限配置模块600包括:

业务系统管理单元602,用于采集业务系统的数据库信息。

其中,业务系统管理单元602采集的业务系统的数据库信息包括数据库类型和数据库连接串。

元数据抓取单元604,用于根据业务系统的数据库信息从该业务系统的数据库抓取权限配置相关的元数据信息。

其中,元数据抓取单元604,用于根据数据库连接串连接到业务系统的数据库,并且根据数据库类型从业务系统的数据库抓取权限配置相关且与数据库类型对应的元数据信息,其中,元数据信息包括被访问对象信息及其属性信息。由于关系型数据库和非关系型数据库的元数据信息不同,因此,元数据抓取单元604,用于在业务系统的数据库为关系型数据库的情况下,从业务系统的数据库抓取权限配置相关的业务表信息及其字段信息;在业务系统的数据库为非关系型数据库的情况下,从业务系统的数据库抓取权限配置相关的集合信息和键值信息。其中,业务表信息例如包括表名,字段信息例如包括字段,如果该字段与数字相关(例如,字段为金额,该列存储具体的数字),字段信息还可以包括精确度和小数位数等。同理,集合信息例如包括集合名,键值信息例如包括键值,如果该键值与数字相关,键值信息还可以包括精确度和小数位数等。

权限配置单元606,用于根据抓取的元数据信息进行权限配置以形成权限配置信息。

其中,权限配置单元606,用于为被访问对象配置权限配置列表,并根据被访问对象的属性信息对其权限配置列表中的权限分配对象、权限类型和权限表达式进行配置以形成权限配置信息。其中,权限分配对象例如包括:根据个人、角色、分组、职位、岗位或者部门进行划分的单个分配对象或集合型分配对象;权限类型例如包括查询、修改、增加、删除,但不限于所举示例。

上述数据权限管理系统的实施例通过设置业务系统管理单元采集各个业务系统的数据库信息,并由元数据抓取单元依据采集的信息从业务系统的数据库抓取权限配置相关的元数据信息,然后由权限配置单元根据抓取的信息进行权限配置,实现了数据权限管理系统对各个业务系统的数据权限的统一和集中配置,便于维护和管理,该数据权限管理系统还能够快速响应业务系统组织架构的变化和调整,实现数据权限的灵活管理。此外,一些比较复杂的数据权限配置管理数据权限管理系统也能够实现。

下面结合图7对数据权限管理系统60进行数据权限配置的工作流程进行说明。

步骤S702,权限配置单元606接收权限管理员发送的数据权限配置命令。其中,数据权限配置命令中包括权限管理员欲配置的业务系统、数据库、业务表(或集合)、字段(或键值)、权限分配对象、权限类型、配置条件等信息。这些信息可以由权限管理员在数据权限配置界面进行选择也可以采取手动输入等方式。

步骤S704,权限配置单元606向业务系统管理单元602发送业务系统数据库信息获取请求,该请求中例如包括欲配置的业务系统的信息。

步骤S706,业务系统管理单元602向权限配置单元606返回欲配置的业务系统对应的数据库信息,例如数据库连接串。

步骤S708,权限配置单元606向元数据抓取单元604发送元数据抓取请求,请求中例如包括数据库连接串、欲配置的业务表(或集合)信息等。

步骤S710,元数据抓取单元604根据数据库连接串连接到业务系统的数据库,抓取业务表的字段信息(或集合的键值信息),然后向权限配置单元606返回抓取的信息。

步骤S712,权限配置单元606根据欲配置的业务表的字段信息(或集合的键值信息)、配置条件以及数据库类型生成权限表达式。

步骤S714,权限配置单元606将权限表达式与权限分配对象、权限类型相对应写入权限表达式列表,完成数据权限配置。

步骤S716,权限配置单元606向权限管理员返回权限配置结果。

从上述实施例可以看出,用户通过操作界面进行简单的操作即可对多个业务系统进行统一的数据权限配置工作,容易学习,易于掌握。

本发明还提供另一种数据权限管理系统,下面结合图8进行描述。

图8为本发明另一种数据权限管理系统一个实施例的结构图。如图8所示,该系统80包括:数据访问过滤模块800,数据访问过滤模块800包括:

数据访问请求接收单元802,用于接收业务系统拦截的用户的数据访问请求。

数据访问请求解析单元804,用于通过解析数据访问请求获取用户欲访问的对象。

其中,针对关系型数据库,数据访问请求解析单元804通过解析数据访问请求可以获知用户欲访问的业务表的表名,对业务表的具体操作等信息;针对非关系型数据库,数据访问请求解析单元804通过解析数据访问请求可以获知用户欲访问的集合名,对集合的具体操作等信息。

权限信息获取单元806,用于从权限配置信息查找用户对欲访问的对象的访问权限信息。

其中,权限信息获取单元806,用于从权限配置信息查找欲访问的对象对应的权限配置列表,权限配置列表包括权限分配对象、权限类型和权限表达式;在权限配置列表的权限分配对象中查找到用户,如果数据访问请求中包含的用户操作与权限配置列表中该用户已配置的权限类型匹配,则述权限配置列表中提取用户对应的权限表达式。

权限信息处理单元808,用于将访问权限信息与数据访问请求进行合并,并返回至业务系统,以便业务系统继续处理带有访问权限信息的数据访问请求。

如图8所示,根据安全需要,数据访问过滤模块800还可以包括:验证单元810,用于在数据访问请求接收单元接收到业务系统拦截的用户的数据访问请求之后,在数据访问请求解析单元进行解析之前,对业务系统的合法性进行验证,如果验证通过,数据访问请求解析单元804对数据访问请求进行解析。通过在数据权限管理系统设置验证单元对业务系统进行验证,可以保证调用的合法性,提高系统的安全性。

根据安全需要,数据访问过滤模块800还可以包括:解密单元812,用于在数据访问请求接收单元接收到业务系统拦截的用户的数据访问请求之后,在数据访问请求解析单元进行解析之前,对接收的数据访问请求进行解密,如果解密成功,数据访问请求解析单元804对数据访问请求进行解析。通过在数据权限管理系统设置解密单元对数据访问请求进行解密可以保证传输的可靠性,避免数据访问请求在传输过程被更改。

如图8所示该系统80还可以包括前述实施例中的数据权限配置模块600。

上述数据权限管理系统的实施例中数据访问请求接收单元接收各个业务系统发送的拦截的用户的数据访问请求,通过数据访问请求解析单元对数据访问请求进行解析,权限信息获取单元获取用户欲访问的对象的访问权限信息,最后由权限信息处理单元将访问权限信息与数据访问请求进行合并,并返回至业务系统,实现了统一对各个业务系统进行访问控制。进一步的,该数据权限管理系统中还可以设置前述的数据权限配置模块,实现对各个业务系统的数据权限的统一和集中配置,加强了对各个业务系统数据权限的统一管理,此外,数据权限管理系统还能够快速响应业务系统组织架构的变化和调整,实现数据权限的灵活管理。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号