数据操作权限的管理方法、装置、计算设备及存储介质与流程

文档序号:14941117发布日期:2018-07-13 20:49阅读:155来源:国知局

本申请涉及云计算领域,尤其涉及数据操作权限的管理方法、装置、计算设备及存储介质。



背景技术:

随着云技术的发展,各种云数据平台可以提供多用户环境下的数据分析、数据处理和数据展示服务。由于多用户的数据均存储于云数据平台中,对各用户的操作权限进行管理是保证平台数据安全的重要环节。



技术实现要素:

根据本申请一个方面,提供了一种数据操作权限的管理方法,包括:从第一客户端接收数据操作请求,其中所述数据操作请求用于描述与数据库表操作有关的指示;确定所述数据操作请求对应的操作场景标识,其中,所述操作场景标识用于标识所述数据操作请求所对应的应用场景类型;获取所述操作场景标识对应的第一操作权限策略;将所述数据操作请求与所述第一操作权限策略进行匹配操作;以及当确定所述数据操作请求满足所述第一操作权限策略时,执行所述数据操作请求。

在一些实施例中,管理方法还包括:当确定所述数据操作请求不满足所述第一操作权限策略时,生成表示不执行所述数据操作请求的第一通知消息,并将所述第一通知消息发送到所述第一客户端。

在一些实施例中,从第一客户端接收数据操作请求,包括:接收第一用户标识和对第一目标数据的操作指令;在执行将所述数据操作请求与所述第一操作权限策略进行匹配操作之前,该方法还包括:查询所述第一用户标识对所述第一目标数据的第二操作权限策略;将所述操作指令与所述第二操作权限策略进行匹配操作;当确定所述操作指令与第二操作权限策略不匹配时,生成表示不执行所述操作指令的第二通知消息,并将所述第二通知消息发送到所述第一客户端。

在一些实施例中,所述管理方法在任务管理系统中执行,所述任务管理系统包括基于蜂巢架构的任务管理装置和基于护林人架构的权限管理装置;所述查询所述第一用户标识对所述第一目标数据的第二操作权限策略,包括:在所述任务管理装置中向所述权限管理装置发送对所述第二操作权限策略的查询请求;在所述权限管理装置中响应于所述查询请求,查询所述第一用户标识对所述第二目标数据的数据库表操作指令集,并将该数据库表操作指令集作为所述第二操作权限策略。

在一些实施例中,所述任务管理系统还包括会话管理装置;所述确定所述数据操作请求对应的操作场景标识,包括:当所述会话管理装置接收到来自所述第一客户端的所述数据操作请求时,根据应用场景库确定所述数据操作请求对应的操作场景标识,其中,所述应用场景库用于描述数据库表操作与操作场景标识的关联关系;在所述会话管理装置中将所述操作场景标识设置为所述第一用户标识对应的蜂巢会话的参数,其中所述蜂巢会话用于将所述数据操作请求发送至所述任务管理装置。

在一些实施例中,所述获取第一操作权限策略和进行所述匹配操作,包括:在所述任务管理装置通过所述蜂巢会话获取所述数据操作请求时,将所述数据操作请求解析为相应的抽象语言结构树;在所述任务管理装置中,通过钩子函数方式在监测到生成所述抽象语言结构树时,根据所述参数,查询与所述抽象语言结构树对应的第一操作权限策略;在所述任务管理装置中,确定所述抽象语言结构树是否满足所述第一操作权限策略。

在一些实施例中,管理方法还包括:在所述会话管理装置中接收所述第一客户端对第二目标数据的权限获取请求,该权限获取请求包括第一用户标识和所请求的权限范围;在所述会话管理装置中,响应于所述权限获取请求,向第二客户端发送相应的第四通知消息,以便第二客户端根据该第四通知消息返回响应消息,其中,所述第四通知消息包括所述权限获取请求;在所述会话管理装置中接收所述响应消息;当所述响应消息表示同意所述权限获取请求时,在所述会话管理装置中向所述权限管理装置发送相应的权限修改请求;在所述权限管理装置中,响应于所述权限修改请求,将所述第一用户标识对所述第二目标数据的操作权限范围修改为所请求的权限范围。

在一些实施例中,所述任务管理系统还包括基于搜索查询服务器架构的审计装置,该方法还包括:在所述权限管理装置中,生成与所述数据操作请求的执行结果有关的日志记录,并将所述日志记录发送到所述审计装置;在所述审计装置中,根据预定策略分析所述日志记录;当确定任一条所述日志记录未满足所述预定策略中的至少一条规则时,在所述审计装置中生成相应的告警消息,并将所述告警消息发送到所述第一客户端。

在一些实施例中,所述从第一客户端接收数据请求,包括:接收第一用户标识和对第一目标数据的操作指令;在执行将所述数据操作请求与所述第一操作权限策略进行匹配操作之前,该方法还包括:查询有权限对所述第一目标数据执行所述操作指令的用户标识范围;将所述第一用户标识与所述用户标识范围进行匹配操作;当确定所述第一用户标识与所述用户标识范围不匹配时,生成表示不执行所述操作指令的第三通知消息,并将所述第三通知消息发送到所述第一客户端。

在一些实施例中,所述获取所述操作场景标识对应的第一操作权限策略,包括:查询所述操作场景标识所对应的被允许执行的第一操作指令集;所述确定所述数据操作请求满足所述第一操作权限策略,包括:在确定所述数据操作请求中操作指令属于所述第一操作指令集时,确定所述数据操作请求满足所述第一操作权限策略。

在一些实施例中,所述获取所述操作场景标识对应的第一操作权限策略,包括:查询所述操作场景标识所对应的被禁止执行的第二操作指令集;所述确定所述数据操作请求满足所述第一操作权限策略,包括:在确定所述数据操作请求中操作指令不属于所述第二操作指令集时,确定所述数据操作请求满足所述第一操作权限策略。

根据申请又一个方面,提供一种数据操作权限的管理装置,包括:接收单元,用于从第一客户端接收数据操作请求;场景确定单元,用于确定所述数据操作请求对应的操作场景标识,其中,所述操作场景标识用于标识该数据操作请求所对应的应用场景类型;第一获取单元,用于获取所述操作场景标识对应的第一操作权限策略;第一匹配单元,用于将所述数据操作请求与所述第一操作权限策略进行匹配操作;处理单元,用于当所述第一匹配单元确定所述数据操作请求满足所述第一操作权限策略时,执行所述数据操作请求。

在一些实施例中,该管理装置还包括通知单元,用于当所述第一匹配单元确定所述数据操作请求不满足所述第一操作权限策略时,生成表示不执行所述数据操作请求的第一通知消息,并将所述第一通知消息发送到所述第一客户端。

在一些实施例中,所述接收单元根据下述方式从第一客户端接收数据请求:接收第一用户标识和对第一目标数据的操作指令;该管理装置还包括:第二获取单元,用于在所述第一匹配单元执行将所述数据操作请求与所述第一操作权限策略进行匹配操作之前,查询所述第一用户标识对所述第一目标数据的第二操作权限策略;第二匹配单元,用于将所述操作指令与所述第二操作权限策略进行匹配操作。所述通知单元还用于,当所述第二匹配单元确定所述操作指令与第二操作权限策略不匹配时,生成表示不执行所述操作指令的第二通知消息,并将所述第二通知消息发送到所述第一客户端。

在一些实施例中,所述接收单元根据下述方式从第一客户端接收数据请求:接收第一用户标识和对第一目标数据的操作指令。该管理装置还包括:第二获取单元,用于在所述第一匹配单元将所述数据操作请求与所述第一操作权限策略进行匹配操作之前,查询有权限对所述第一目标数据执行所述操作指令的用户标识范围;第二匹配单元,用于将所述第一用户标识与所述用户标识范围进行匹配操作。所述通知单元还用于,当所述第二匹配单元确定所述第一用户标识与所述用户标识范围不匹配时,生成表示不执行所述操作指令的第三通知消息,并将所述第三通知消息发送到所述第一客户端。

在一些实施例中,所述第一获取单元根据下述方式获取所述操作场景标识对应的第一操作权限策略:查询所述操作场景标识所对应的被允许执行的第一操作指令集;所述第一匹配单元根据下述方式确定所述数据操作请求满足所述第一操作权限策略:在确定所述数据操作请求中操作指令属于所述第一操作指令集时,确定所述数据操作请求满足所述第一操作权限策略。

在一些实施例中,所述第一获取单元根据下述方式获取所述操作场景标识对应的第一操作权限策略:查询所述操作场景标识所对应的被禁止执行的第二操作指令集;所述第一匹配单元根据下述方式确定所述数据操作请求满足所述第一操作权限策略:在确定所述数据操作请求中操作指令不属于所述第二操作指令集时,确定所述数据操作请求满足所述第一操作权限策略。

在一些实施例中,所述接收单元还用于,接收所述第一客户端对第二目标数据的权限获取请求,该权限获取请求包括第一用户标识和所请求的权限范围;所述通知单元还用于,响应于所述权限获取请求,向第二客户端发送相应的第四通知消息,以便第二客户端根据该第四通知消息返回响应消息,其中,所述第四通知消息包括所述权限获取请求;所述接收单元还用于,接收所述响应消息;该管理装置还包括权限管理单元,用于当所述响应消息表示同意所述权限获取请求时,将所述第一用户标识对所述第二目标数据的操作权限范围修改为所请求的权限范围。

在一些实施例中,该管理装置还包括:操作记录单元,用于生成与所述数据操作请求的执行结果有关的日志记录;审计单元,根据预定策略分析所述日志记录,当确定任一条所述日志记录未满足所述预定策略中的至少一条规则时,生成相应的告警消息,将所述告警消息发送到所述第一客户端。

根据本申请又一个方面,提供一种计算设备,包括:一个或多个处理器、存储器以及一个或多个程序。程序存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行本申请的数据操作权限的管理方法的指令。

根据本申请又一个方面,提供一种存储介质,存储有一个或多个程序。所述一个或多个程序包括指令。所述指令当由计算设备执行时,使得所述计算设备执行本申请的数据操作权限的管理方法。

综上,根据本申请的技术方案,通过识别数据操作请求的应用场景(即确定操作场景标识),并通过将数据操作请求与应用场景对应的操作权限范围(即第一操作权限策略)进行匹配操作,从而可以按照应用场景对数据操作权限进行管理。这样,本申请的技术方案可以避免用户在不同应用场景中进行误操作。

附图说明

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

图1示出了根据本申请一些实施例的应用场景100的示意图;

图2a示出了根据本申请一些实施例的数据操作权限的管理方法200的示意图;

图2b和2c分别示出了根据本申请实施例的一个客户端的用户界面;

图3示出了根据本申请一些实施例的数据操作权限的管理方法300的示意图;

图4a示出了根据本申请一些实施例的数据操作权限的管理方法400的示意图;

图4b和4c分别示出了根据本申请实施例的第一客户端的用户界面;

图5a示出了根据本申请一些实施例的系统交互图;

图5b示出了根据本申请一些实施例的系统示意图;

图5c示出了根据本申请一些实施例的系统示意图;

图5d示出了根据本申请一些实施例的系统示意图;

图6示出了根据本申请一些实施例的数据操作权限的管理装置600的示意图;

图7示出了根据本申请一些实施例的数据操作权限的管理装置700的示意图;以及

图8示出了一个计算设备的组成结构图。

具体实施方式

下面将结合本申请实例中的附图,对本申请实例中的技术方案进行清楚、完整地描述,显然,所描述的实例仅是本申请一部分实例,而不是全部的实例。基于本申请中的实例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。

图1示出了根据本申请一些实施例的应用场景100的示意图。

如图1所示,应用场景100可以包括任务管理系统110、任务执行系统120和多个客户端。例如,图1示出了第一客户端130和第二客户端140,但不限于此。这里,任务执行系统120可以被实现为各种分布式系统,例如,基于哈杜普(hadoop)架构的系统。任务执行系统120可以包括多个计算节点,例如可以被实现为服务器集群。客户端可以被实现为移动电话、台式计算机、笔记本电脑或者平板电脑等各种计算设备。第一和第二客户端可以登录任务管理系统110,并向任务管理系统110发送数据操作任务。这里,数据操作任务例如可以是创建或删除数据库表、在数据库表中的插入、替换、删除、查询操作等等。这样,任务管理系统110可以对从客户端接收的数据操作任务进行解析,并将解析后的任务发送到任务执行系统120。例如,任务管理系统110可以基于蜂巢(hive)等架构。另外,任务管理系统110可以对任务权限进行管理,以保证数据安全性。换言之,任务管理系统110可以被认为是一个数据仓库管理系统。下面结合图2a对任务管理系统110的管理方式进一步说明。

图2a示出了根据本申请一些实施例的数据操作权限的管理方法200的示意图。方法200例如可以在任务管理系统110中执行。

如图2a所示,方法200可以包括步骤s201,从第一客户端接收数据操作请求。这里,数据操作请求可以是创建数据库表、删除数据库表、修改数据库表结构(例如,例如增加或删除列)、对一个或多个数据库表进行数据插入、向数据库表内加载文件、查询操作等等。

在步骤s202中,确定数据操作请求对应的操作场景标识。其中,数据操作请求用于描述与数据库表操作有关的指示。操作场景标识用于标识与该数据操作请求所对应的应用场景类型。数据操作请求可以指示相应的数据库表操作。这样,数据操作请求所对应的应用场景类型也与该数据操作请求所指示的数据库表操作对应。这里,应用场景类型可以被按照操作请求的类型进行划分。数据操作请求的类型例如可以包括数据操作语句(datamanipulationlanguage,简称dml)和数据定义语句(datadefinitionlanguage,简称ddl)。其中,dml操作指令例如可以包括查询指令(select)、更新指令(update)、插入指令(insert)和删除指令(delete)。ddl操作指令例如可以包括表创建指令(create)、表结构修改指令(alter)和对象删除指令(drop)。

例如,图2b和2c分别示出了根据本申请实施例的一个客户端的用户界面。图2b示出了一个创建数据库表的界面。相应的,图2b对应于一个创建数据库表的应用场景。图2b中可以通过输入框201获取关于创建数据表的命令。在步骤s201接收到关于图2b中应用场景的数据操作请求时,步骤s202可以确定相应的操作场景标识,即表示创建数据库表的场景标识。图2c示出了一个查询数据库表的用户界面。在图2c中,输入框202可以根据用户输入搜索列表框203中数据表。输入框204用于接收查询操作的命令。例如,一个查询操作请求的部分代码示例为:select*fromdualajoindualbona.key=b.key(表示查询数据库表a和b,并将二者进行内联)。相应的,图2c对应于一个查询数据库表的应用场景。步骤s202中所确定操作场景标识用于标识查询数据库表的应用场景。在一个实施例中,步骤s201例如可以根据数据操作请求所对应消息中一个字段确定数据操作场景标识。具体而言,步骤s202可以基于该字段与场景标识的映射关系,确定相应的操作场景标识。在又一个实施例中,步骤s202可以对数据操作请求进行解析,从而确定相应的操作场景标识。

在又一个实施例中,任务管理系统110还可以包括会话管理装置和任务管理装置。会话管理装置例如可以基于轻量级目录访问协议(lightweightdirectoryaccessprotocol,简称ldap)而实现。任务管理装置例如可以基于蜂巢(hive)架构而实现。换言之,任务管理装置可以被认为是一个hive数据仓库工具。在步骤s202中,当会话管理装置中接收到来自第一客户端的数据操作请求时,根据应用场景库确定数据操作请求对应的操作场景标识。其中,应用场景库用于描述数据库表操作与操作场景标识的关联关系。由于数据操作请求用于描述与数据库表操作有关的指示,步骤s202可以根据数据操作请求所对应的数据库表操作,将该数据库表操作相关联的操作场景标识作为该数据操作请求所对应的操作场景标识。另外,会话管理装置可以将操作场景标识设置为第一用户标识对应的蜂巢会话(hivesession)的参数。其中,蜂巢会话是指会话管理装置与任务管理装置之间会话连接。第一用户标识对应的蜂巢会话可以用于由会话管理装置将数据操作请求发送至任务管理装置。

在步骤s203中,获取操作场景标识对应的第一操作权限策略。在步骤s204中,将数据操作请求与第一操作权限策略进行匹配操作。当确定数据操作请求满足第一操作权限策略时,方法200可以执行步骤s205,执行数据操作请求。

在一个实施例中,步骤s203可以查询操作场景标识所对应的被允许执行的第一操作指令集。这里,第一操作指令集为允许在该操作场景标识对应的应用场景中执行的指令范围。步骤s204可以将数据操作请求与第一操作指令集进行匹配操作。在确定数据操作请求中各操作指令均属于第一操作指令集时,步骤s204可以确定数据操作请求满足第一操作权限策略。

在又一个实施例中,步骤s203可以查询操作场景标识所对应的被禁止执行的第二操作指令集。这里,第二操作指令集为被禁止在该操作场景标识对应的应用场景中执行的指令范围。步骤s204可以将数据操作请求于第二操作指令集进行匹配操作。在确定数据操作请求中各操作指令均不属于第二操作指令集时,步骤s204可以确定数据操作请求满足第一操作权限策略。

在又一个实施例中,步骤s203可以在任务管理装置通过蜂巢会话获取数据操作请求时,将数据操作请求解析为相应的抽象语言结构树(abstractstructuretree,简称ast)。在任务管理装置中,步骤s203可以通过钩子函数方式(例如hivehook机制)监测数据操作请求的解析结果。在监测到生成抽象语言结构树时,步骤s203可以根据上述参数,查询与抽象语言结构树对应的第一操作权限策略。在步骤s204中,由任务管理装置确定抽象语言结构树是否满足第一操作权限策略。

综上,根据本申请的方法200,通过识别数据操作请求的应用场景(即确定操作场景标识),并通过将数据操作请求与应用场景对应的操作权限范围(即第一操作权限策略)进行匹配操作,从而可以按照应用场景对数据操作权限进行管理。这样,方法200可以避免用户在不同应用场景中进行误操作。

图3示出了根据本申请一些实施例的数据操作权限的管理方法300的示意图。方法300例如可以在任务管理系统110中执行。

如图3所示,方法300可以包括步骤s301,从第一客户端接收数据操作请求。在一个实施例中,数据操作请求可以包括第一用户标识和对第一目标数据的数据操作指令。这里,第一用户标识例如可以用户账号等各种用户身份信息。取决于数据操作指令的具体类型,第一目标数据例如可以包括一个或多个数据库表。

在步骤s302中,查询第一用户标识对第一目标数据的第二操作权限策略。在一个实施例中,第一目标数据可以包括一个或多个数据库表。针对每个数据库表的操作权限例如可以被划分为读权限、写权限和表操作权限。这里,读权限例如可以包括各种表查询操作。表操作权限例如可以包括创建表、删除表、修改表结构等操作。写权限例如可以包括在数据表中插入操作、替换操作和删除操作等等。具体而言,步骤s302可以查询第一用户标识分别对第一目标数据中各数据库表的操作权限。在此基础上,方法300可以执行步骤s303,将操作指令与所述第二操作权限策略进行匹配操作。具体而言,步骤s303可以将数据操作请求中针对各数据库表的操作指令与相应的操作权限进行匹配。在确定各数据库表的操作指令与相应操作权限匹配时,步骤s303可以确定对第一目标数据的操作指令与第二操作权限策略匹配。

在一个实施例中,任务管理系统110可以包括基于蜂巢架构(即hive架构)的任务管理装置和基于护林人架构(即ranger架构)的权限管理装置。步骤s302可以在任务管理装置中向权限管理装置发送对第二操作权限策略的查询请求。这样,权限管理装置可以响应于查询请求,查询第一用户标识对第二目标数据的数据库表操作指令集,并将该数据库表操作指令集作为第二操作权限策略。

当确定与第二操作权限策略匹配时,方法300可以执行步骤s304至s307。这里,步骤s304至s307的实施方式可以被实现为与步骤s202至s205一致,这里不再赘述。

另外,当步骤s306确定数据操作请求不满足第一操作权限策略时,方法300可以执行步骤s308,生成表示不执行所数据操作请求的第一通知消息,并将第一通知消息发送到第一客户端。

另外,当步骤s303确定针对第一目标数据的操作指令与第二操作权限策略不匹配时,方法300可以执行步骤s309,生成表示不执行操作指令的第二通知消息,并将第二通知消息发送到所述第一客户端。

综上,方法300可以对数据操作请求进行两次操作权限判断。在第一次操作权限判断过程中,方法300可以确定用户标识是否对第一目标数据具有执行数据操作请求的权限。在用户标识具有执行数据操作请求的权限时,方法300可以进行第二次操作权限判断。在第二次操作权限判断过程中,方法300可以根据数据操作请求对应的应用场景,确定数据操作请求是否满足该应用场景的操作权限限制。这样,尽管一个数据操作请求满足用户标识对应的操作权限范围,方法300可以避免用户在不适合执行该数据操作请求的应用场景中进行误操作。

图4a示出了根据本申请一些实施例的数据操作权限的管理方法400的示意图。方法400例如可以在任务管理系统110中执行。

如图4a所示,方法400可以包括步骤s401,从第一客户端接收数据操作请求。这里,数据操作请求例如可以包括第一用户标识和对第一目标数据的操作指令。

在步骤s402中,查询有权限对第一目标数据执行上述操作指令的用户标识范围。在步骤s403中,将第一用户标识与用户标识范围进行匹配操作,即判断第一用户标识是否属于用户标识范围。当步骤s403确定第一用户标识与所述用户标识范围匹配时,方法400可以执行步骤s404至s408。这里,步骤s404至s408的实施方式与步骤s304至s308一致,这里不再赘述。

另外,当步骤s403确定第一用户标识与所述用户标识范围不匹配时,方法400可以执行步骤s409。在步骤s409中,生成表示不执行操作指令的第三通知消息,并将第三通知消息发送到第一客户端。

另外,方法400还可以执行步骤s410,接收第一客户端对第二目标数据的权限获取请求,该权限获取请求包括第一用户标识和所请求的权限范围。图4b示出了根据本申请实施例的第一客户端的用户界面。如图4b所示,弹出页面401可以用于确定用户对数据库表所请求的权限范围。在此基础上,第一客户端130可以向任务管理系统110发送权限获取请求。另外说明的是,第一客户端还可以通过分组方式对操作权限进行管理。例如,图4c示出了根据本申请一个实施例的第一客户端的用户界面。如图4c所示,在控件402被点击时,用户界面可以弹出窗口403。这里,用户通过对控件404中用户进行选择,可以选定用户并显示在区域405中。第一客户端中所选定的用户例如可以被添加到一个组内。对于一个组而言,系统110可以从第一客户端接收关于组内所添加用户的信息。这样,所添加用户可以具有该组对应的操作权限。

在步骤s411中,响应于权限获取请求,向第二客户端发送相应的第四通知消息,以便第二客户端根据该第四通知消息返回响应消息,其中,第四通知消息包括权限获取请求。这里,第二目标数据例如是一个或多个数据库表。第二客户端是指对第二目标数据具有管理权限的用户设备。在第二目标数据中多个数据库表由多个用户管理时,步骤s411还可以分别向各用户对应的客户端发送权限获取请求。在步骤s412中,接收响应消息。当响应消息表示同意所述权限获取请求时,方法400可以执行步骤s413,将第一用户标识对第二目标数据的操作权限范围修改为所请求的权限范围。

在又一个实施例中,任务管理系统110可以包括会话管理装置、基于蜂巢架构(即hive架构)的任务管理装置和基于护林人架构(即ranger架构)的权限管理装置。权限管理装置例如可以是ranger服务组件。步骤s410、s411和s412可以由会话管理装置执行。在步骤s413中,由会话管理装置向权限管理装置发送相应的权限修改请求。在权限管理装置中,响应于权限修改请求,将第一用户标识对第二目标数据的操作权限范围修改为所请求的权限范围。

另外,方法400还可以执行步骤s414,生成与数据操作请求的执行结果有关的日志记录。这里,与执行结果有关的日志记录例如可以是一条或者多条记录。日志记录例如可以包括用户标识、数据操作指令、操作执行时间和数据操作结果。在步骤s415中,根据预定策略分析日志记录。在一个实施例中,预定策略例如可以包括一条或多条规则。一条规则例如是数据操作指令与数据操作结果需匹配。又一条规则例如是用户标识需要具有执行数据操作指令的权限。例如,数据操作指令为查询一个数据库表中一个字段的数据。数据操作结果需要为查询读取记录,而不是对该数据表的修改等其他操作。当步骤s416确定当确定任一条日志记录未满足预定策略中的至少一条规则时,生成相应的告警消息,并将告警消息发送到第一客户端或者其他监测设备。

在一个实施例中,任务管理系统110可以包括会话管理装置、基于蜂巢架构(即hive架构)的任务管理装置、基于护林人架构(即ranger架构)的权限管理装置和审计装置。其中,审计装置例如可以基于搜索查询服务器(solr)架构而实现。在步骤s414中,由权限管理装置生成与数据操作请求的执行结果有关的日志记录,并将日志记录发送到审计装置。这样,审计装置可以执行步骤s415。当确定任一条日志记录未满足预定策略中的至少一条规则时,审计装置可以执行步骤s416,生成相应的告警消息,并将告警消息发送到第一客户端。

综上,方法400通过对日记记录进行分析(也可以称为审计),可以及时发现数据操作异常情况,以便及时对异常情况进行处理。

图5a示出了根据本申请一些实施例的系统交互图。如图5a所示,任务管理系统110可以包括会话管理装置111、任务管理装置112、权限管理装置113和审计装置114。在一个实施例中,会话管理装置111例如可以基于轻量级目录访问协议(lightweightdirectoryaccessprotocol,简称ldap)而实现。任务管理装置112例如可以基于蜂巢(hive)架构而实现。权限管理装置113可以基于安全管理框架(例如ranger,是一种集中式安全管理框架)而实现。审计装置114例如可以基于搜索应用服务器(例如solr,是一个独立的企业级搜索应用服务器,对外提供类似于web-service的api接口,可以实现的功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本的处理)架构而实现。

第一客户端130可以执行步骤s501,向会话管理装置111发送用于登录任务管理系统110的身份验证信息,例如为账号和密码信息。会话管理装置111可以根据本地存储的用户身份信息对所接收的身份验证信息进行匹配判断。当确定身份验证信息通过验证时,会话管理装置111可以从权利管理装置113获取第一客户端对应的数据管理信息。数据管理信息例如包括待显示在第一客户端130的数据库表信息。待显示的数据库表信息可以包括用户具有管理权限(例如读写权限)的数据库表的标识、具有读权限的数据库表的标识、能够查看表名称的数据库表的标识。这样,会话管理装置111可以执行步骤s502,向第一客户端130返回与待显示的数据库表信息有关的管理页面,以便在第一客户端显示该管理页面。

第一客户端130可以执行步骤s503,生成针对管理页面中数据库表的数据操作请求。数据操作请求例如可以包括第一用户标识和隐式查询语言(hibernatequerylanguage,简称hql)消息。这样,会话管理装置111可以执行步骤s504,根据hql消息确定操作场景标识。会话管理装置111还可以执行步骤s505,将数据操作请求和操作场景标识发送到任务管理装置112。在一个实施例中,会话管理装置111可以在连接任务管理装置112的会话(例如hivesession)上设置关于操作场景的参数。这里,设置参数的代码示例为:settdf.sql.auth.type=xx其中,“xx”表示操作场景的标识。这样,任务管理装置112可以根据所设置的参数确定操作场景标识。

任务管理装置112可以执行步骤s506,向权限管理装置113发送操作权限查询请求。权限管理装置113可以管理数据库表的操作权限。例如,在任务管理装置112每次指示任务执行系统120生成一个数据库表时,权限管理装置113可以生成该数据库表的权限记录。权限记录例如可以包括:所属用户、所属工程和所属组。在一个实施例中,所属用户对该表具有管理权限。所属工程内用户对该表具有读权限。所属组中不属于所属工程的用户具有查看表名称的权限。这里,取决于具体的权限策略,权限管理装置113可以对各数据库表的操作权限进行相应配置,这里不再赘述。权限管理装置113响应于该查询请求,确定数据操作请求是否与第二权限操作策略匹配,即确定第一用户标识是否具有执行上述数据操作请求的权限。权限管理装置113可以执行步骤s507,返回权限查询结果。这样,任务管理装置112在根据权限查询结果确定第一用户标识具有执行数据操作的权限时,可以继续执行步骤s508。在步骤s508中,将数据操作请求解析为抽象语言结构树(abstractstructuretree,简称ast),并查询操作场景标识对应的操作权限范围(即确定上文中第一操作权限策略)。这里,任务管理装置112例如可以采用钩子(hook)函数机制,在每次生成关于数据操作请求的ast树时,查询该ast关联的操作场景标识对应的操作权限范围。在步骤s509中,任务管理装置112可以判断ast中操作指令是否处于所查询到的数据操作权限范围,即判断数据操作请求是否满足第一操作权限策略。任务管理装置112在确定属于操作权限范围时,可以执行步骤s510。在步骤s510中,任务管理装置112可以向任务执行系统120发送数据操作请求对应的任务。这样,任务执行系统120可以执行该数据操作请求。具体而言,任务执行系统可以将任务拆分成多个子任务,然后在各计算节点中执行相应的子任务。

另外,权限管理装置113可以执行步骤s511,监控hql的执行过程,生成相应的日志记录。在步骤s512中,权限管理装置113可以向审计装置114发送日志记录。这样,审计装置114可以执行步骤s513,根据预定审计策略对日志记录进行分析。审计装置114在确定日记记录存在异常时,可以执行步骤s514。在步骤s514中,审计装置114可以生成关于异常的通知消息并发送到第一客户端130。另外,审计装置114也可以将通知消息发送到其他监测设备。

另外,第一客户端130还可以执行步骤s515,向会话管理装置111发送对第二目标数据的权限获取请求。会话管理装置111可以确定第二目标数据的管理权限,例如管理权限属于第二客户端140对应的用户。会话管理装置111可以执行步骤s516,向第二客户端140发送关于权限获取请求的通知消息。第二客户端140在根据用户输入同意权限获取请求时,可以执行步骤s517,向会话管理装置111发送确认消息。这样,会话管理装置111可以执行步骤s518。在步骤s518中,向权限管理装置113发送操作权限修改请求。这样,权限管理装置113可以执行步骤s519,修改第一客户端对第二目标数据的操作权限。

图5b示出了根据本申请一些实施例的系统示意图。如图5b所示,会话管理装置111在接收到数据操作请求时,可以将该数据操作请求和操作场景标识发送到任务管理装置112的接口1121。接口1121可以向权限管理装置113发送权限查询请求。权限管理单元1131可以从权限记录单元1132中查询用户是否具有执行数据操作请求的权限,并向接口1121返回查询结果。在查询结果表示用户具有执行权限时,编译单元1122可以编译数据操作请求,以获取编译结果(例如为ast树)。对于编译结果,匹配单元1123可以查询操作场景标识对应的第一操作权限策略,判断编译结果是否满足第一操作权限策略。在匹配单元1123确定编译结果满足第一操作权限策略时,执行管理单元1124可以将数据操作请求对应的操作任务提交到任务执行系统120。任务管理节点121可以将操作任务分配到各计算节点,例如122、123和124。这样,各计算节点可以进行相应的数据处理。另外,权限管理单元1131还可以生成任务执行系统120进行任务执行的日志记录,并发送到审计装置114。审计管理单元1141可以根据规则管理单元1142所存储的审计策略,对日志记录进行审计。这样,审计管理单元1141可以在确定日记记录存在异常时,可以生成关于异常的通知消息。审计管理单元1141可以通过任务管理系统110将通知消息发送到客户端(例如第一客户端)。

图5c示出了根据本申请一些实施例的系统示意图。如图5c所示,会话管理装置111例如可以基于轻量级目录访问协议(lightweightdirectoryaccessprotocol,简称ldap)而实现。任务管理装置112例如可以基于蜂巢(hive)架构而实现。任务执行系统120例如可以基于另一种资源协调者(yetanotherresourcenegotiator,yarn)架构而实现。这里,yarn是一种哈杜普的资源管理器。

会话管理装置111可以包括权限管理单元1111和应用场景库1112。其中,应用场景库1112用于描述数据库表操作与操作场景标识的关联关系。在会话管理装置111接收到数据操作请求时,权限管理单元1111可以查询应用场景库1112,以确定与所接收的数据操作请求对应的操作场景标识。在多用户应用场景中,权限管理单元1111例如可以确定用户标识a对应的操作场景标识1,确定用户标识b对应的操作场景标识2。这里,针对用户标识a,会话管理装置111与接口1121建立有会话1(即一个hivesession)。会话管理装置111可以将操作场景标识1设置为会话1的参数1。类似地,针对用户标识b,会话管理装置111与接口1125建立有会话2。操作场景标识2被设置为会话2的参数2。另外,会话管理装置111可以将用户标识a对应的数据操作请求通过会话1和接口1121传输到编译单元1122。编译单元1122可以将数据操作请求解析为ast。钩子1126可以监测编译单元1122。钩子1126例如可以实现hive中抽象类abstractsemanticanalyzerhook的方法preanalyze。钩子1126在获取ast时,可以将ast传输至匹配单元1123。匹配单元1123可以确定ast是否与第一操作权限策略匹配。在确定相匹配时,匹配单元1123可以向执行管理单元1124发送表示匹配通过的消息。执行管理单元1124在接收到匹配通过的消息时,可以从编译单元1122获取数据操作请求对应的待执行任务。这样,执行管理单元1124可以将待执行任务提交到任务执行系统120。

图5d示出了根据本申请一些实施例的系统示意图。如图5d所示,会话管理装置111例如可以基于轻量级目录访问协议(lightweightdirectoryaccessprotocol,简称ldap)而实现。任务管理装置112例如可以基于蜂巢(hive)架构而实现。权限管理装置113可以基于安全管理框架(例如ranger,是一种集中式安全管理框架)而实现。审计装置114例如可以基于搜索查询服务器(solr)架构而实现。会话管理装置111可以包括鉴权单元1113和库表管理单元1114。任务管理装置112可以包括蜂巢服务单元1121和管理插件1131。权限管理装置113可以包括权限管理单元1131和权限记录库1132。审计装置114可以包括审计单元1141和审计策略库1142。这里,权限管理单元1131例如可以是护林人管理器(rangermanager)。权限记录库1132可以记录各数据库表的操作权限。

具体而言,鉴权单元1113可以对登录任务管理系统的客户端进行身份验证。例如,客户端1通过身份验证信息(例如,用户名和密码等)访问会话管理装置111。鉴权单元1113可以对客户端1的身份验证信息进行验证。在通过身份验证时,客户端1可以向会话管理装置111发送数据操作请求。需要说明的是,数据操作请求的类型例如可以包括数据操作语句(datamanipulationlanguage,简称dml)数据定义语句(datadefinitionlanguage,简称ddl)。其中,dml操作指令例如可以包括查询指令(select)、更新指令(update)、插入指令(insert)、删除指令(delete)。ddl操作指令例如可以包括表创建指令(create)、表结构修改指令(alter)、对象删除指令(drop)。例如,客户端1可以向会话管理装置发送dml类型的操作指令。客户端2可以向会话管理装置111发送ddl类型的操作指令。

库表管理单元1114可以接收一个客户端所发送权限获取请求。权限获取请求是指对一个目标数据(例如一个数据库表)的操作权限请求。例如,客户端1可以向库表管理单元1114发送权限获取请求1。权限获取请求1可以包括客户端1对目标数据1的一项或多项操作权限请求。目标数据1的管理者为客户端2所对应的用户。在接收到权限获取请求1时,库表管理单元1114可以将权限获取请求1发送到客户端2。客户端2可以向库表管理单元1114发送响应消息。在响应消息表示同意权限获取请求1时,可以向权限管理单元1131发送相应的权限修改请求。这样,权限管理单元1131可以修改权限记录库1132中客户端1对目标数据1的操作权限,从而使得客户端1获取与权限获取请求1对应的操作权限。另外说明的是,在任务执行系统120生成一个数据库表时,权限管理单元1131可以生成相应的权限记录,并存储在权限记录库1132中。这里,权限记录例如可以描述数据库表的所有者和所有者的操作权限等权限内容。

蜂巢服务单元1121例如可以是hiveserver2(可以执行hive查询等服务)组件,但不限于此。蜂巢服务单元1121可以与会话管理装置111建立蜂巢会话(hivesession)。例如,针对客户端1,蜂巢服务单元1121与会话管理装置111建立有会话1。针对客户端2,蜂巢服务单元1121与会话管理装置111建立有会话2。这样,蜂巢服务单元1121可以接收数据操作请求。例如,蜂巢服务单元1121可以接收来自客户端1的数据操作请求1。数据操作请求1例如是用户标识a对目标数据1的操作指令1。蜂巢服务单元1121可以通过管理插件1133向权限管理单元1131发送权限查询请求。这样,权限管理单元1131可以在权限记录库1132中查询用户标识a对目标数据1的操作权限范围(即上文中第二操作权限策略)。在此基础上,权限管理单元1131可以通过管理插件1133将第二操作权限策略发送到蜂巢服务单元1121。这里,管理插件1133例如可以是rangerplugin服务组件,但不限于此。这样,蜂巢服务单元1121可以确定操作指令1是否匹配第二操作权限策略。在匹配第二操作权限策略时,蜂巢服务单元1121还可以继续判断操作指令1是否满足第一操作权限策略。这里,蜂巢服务单元1121判断操作指令是否满足第一操作权限策略的方式与图5c中匹配单元1123一致,这里不再赘述。综上,蜂巢服务单元1121可以对数据操作请求进行两次操作权限判断。在第一次判断过程中,蜂巢服务单元1121可以确定用户标识是否对目标数据具有执行数据操作请求的权限(例如,确定是否满足第二操作权限策略)。在用户标识具有执行数据操作请求的权限时,蜂巢服务单元1121可以进行第二次操作权限判断。在第二次操作权限判断过程中,蜂巢服务单元1121可以根据数据操作请求对应的应用场景,确定数据操作请求是否满足该应用场景的操作权限限制(例如,确定数据操作请求是否满足第一操作权限策略)。这样,在一个数据操作请求满足用户标识对应的操作权限范围时,蜂巢服务单元1121可以避免用户在不适合执行该数据操作请求的应用场景中进行误操作。

另外,权限管理单元1131可以监控对数据操作的执行结果。这里,权限管理单元1131可以生成与执行结果有关的日志记录,并将日志记录发送到审计装置114。规则管理单元1142存储有对日志记录的审计策略。审计管理单元1141可以根据规则管理单元1142的审计策略分析日志记录。

图6示出了根据本申请一些实施例的数据操作权限的管理装置600的示意图。管理装置600例如可以驻留在任务管理系统110中。管理装置600可以包括:接收单元601、场景确定单元602、第一获取单元603、第一匹配单元604和处理单元605。

接收单元601用于从第一客户端接收数据操作请求。

场景确定单元602用于确定数据操作请求对应的操作场景标识。其中,操作场景标识用于标识该数据操作请求所对应的应用场景类型。换言之,应用场景类型与数据库表操作对应。

第一获取单元603用于获取操作场景标识对应的第一操作权限策略。

第一匹配单元604用于将数据操作请求与第一操作权限策略进行匹配操作。

在一个实施例中,第一获取单元603可以查询所述操作场景标识所对应的被允许执行的第一操作指令集。第一匹配单元604可以在确定数据操作请求中操作指令属于所述第一操作指令集时,确定数据操作请求满足第一操作权限策略。

在又一个实施例中,第一获取单元603可以查询所述操作场景标识所对应的被禁止执行的第二操作指令集。第一匹配单元604可以在确定数据操作请求中操作指令不属于第二操作指令集时,确定数据操作请求满足第一操作权限策略。

处理单元605用于当第一匹配单元604确定数据操作请求满足第一操作权限策略时,执行数据操作请求。

图7示出了根据本申请一些实施例的数据操作权限的管理装置700的示意图。管理装置600例如可以驻留在任务管理系统110中。管理装置700可以包括:接收单元701、场景确定单元702、第一获取单元703、第一匹配单元704、处理单元705、通知单元706、第二获取单元707、第二匹配单元708、权限管理单元709、操作记录单元710和审计单元711。其中,接收单元701、场景确定单元702、第一获取单元703、第一匹配单元704和处理单元705可以执行与上述接收单元601、场景确定单元602、第一获取单元603、第一匹配单元604和处理单元605一致的操作,但不限于此。

在一个实施例中,通知单元706用于当第一匹配单元704确定数据操作请求不满足第一操作权限策略时,生成表示不执行数据操作请求的第一通知消息,并将第一通知消息发送到第一客户端。

在一个实施例中,接收单元701可以接收第一用户标识和对第一目标数据的操作指令。第二获取单元707可以在第一匹配单元704执行将数据操作请求与第一操作权限策略进行匹配操作之前,查询第一用户标识对第一目标数据的第二操作权限策略。第二匹配单元708可以将操作指令与第二操作权限策略进行匹配操作。通知单元706还可以当第二匹配单元708确定操作指令与第二操作权限策略不匹配时,生成表示不执行操作指令的第二通知消息,并将第二通知消息发送到第一客户端。

在一个实施例中,接收单元701可以接收第一用户标识和对第一目标数据的操作指令。第二获取单元707可以在第一匹配单元704将数据操作请求与第一操作权限策略进行匹配操作之前,查询有权限对第一目标数据执行操作指令的用户标识范围。第二匹配单元708可以将第一用户标识与用户标识范围进行匹配操作。通知单元706可以当第二匹配单元708确定第一用户标识与用户标识范围不匹配时,生成表示不执行操作指令的第三通知消息,并将第三通知消息发送到第一客户端。

在一个实施例中,接收单元701还可以接收第一客户端对第二目标数据的权限获取请求。该权限获取请求包括第一用户标识和所请求的权限范围。通知单元706响应于权限获取请求,可以向第二客户端发送相应的第四通知消息,以便第二客户端根据该第四通知消息返回响应消息。其中,第四通知消息包括权限获取请求。接收单元701可以接收响应消息。权限管理单元709可以当响应消息表示同意权限获取请求时,将第一用户标识对第二目标数据的操作权限范围修改为所请求的权限范围。

在一个实施例中,操作记录单元710可以生成与数据操作请求的执行结果有关的日志记录。审计单元711可以根据预定策略分析日志记录。当确定任一条日志记录未满足预定策略中的至少一条规则时,审计单元711可以生成相应的告警消息,并将告警消息发送到第一客户端。

图8示出了一个计算设备的组成结构图。如图8所示,该计算设备包括一个或者多个处理器(cpu或gpu)802、通信模块804、存储器806、用户接口810,以及用于互联这些组件的通信总线808。

处理器802可通过通信模块804接收和发送数据以实现网络通信和/或本地通信。

用户接口810包括一个或多个输出设备812,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口810也包括一个或多个输入设备814,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。

存储器806可以是高速随机存取存储器,诸如dram、sram、ddrram、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。

存储器806存储处理器802可执行的指令集,包括:

操作系统816,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;

应用818,包括用于实现上述视频播放方法的各种程序,这种程序能够实现上述各实例中的处理流程,比如可以包括根据本申请的视频播放器。视频播放器可以包括图6所示的数据操作权限的管理装置600或图7所示的数据操作权限的管理装置700。

另外,本申请的每一个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如cd-rom等)、磁光存储介质(如mo等)等。

因此本申请还公开了一种非易失性存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述方法的任何一种实例。

另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1