分区授权方法、装置、设备及计算机可读存储介质与流程

文档序号:18554256发布日期:2019-08-30 22:22阅读:252来源:国知局
分区授权方法、装置、设备及计算机可读存储介质与流程

本发明涉及金融科技(fintech)的大数据技术领域,尤其涉及一种分区授权方法、装置、设备及计算机可读存储介质。



背景技术:

随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。

对于大数据平台安全管理而言,随着数据量的增长,用户的增加,业务越来越复杂,一种集中式和细粒度权限控制方法也是日益重要。apacheranger就是一个很好的解决方案,它能很好地支持hadoop生态圈各组件的集中式管理,还能提供非常细粒度的权限管理,能满足日常大部分的安全权限管理需求。但其对hive的支持还是存在缺陷,例如不支持对分区表的分区权限控制。



技术实现要素:

本发明的主要目的在于提供一种分区授权方法、装置、设备及计算机可读存储介质,旨在解决现有技术ranger不支持按分区进行权限控制的技术问题。

为实现上述目的,本发明提供一种分区授权方法,所述分区授权方法应用于ranger端,所述分区授权方法包括以下步骤:

接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识;

根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限;

若所述当前用户具有所述目标分区的数据访问权限,则允许hive端向所述当前用户提供所述目标分区的数据访问服务。

可选地,所述目标分区路径和当前用户标识由hive端接收当前用户输入的请求访问目标分区的访问语句,对所述访问语句进行词法解析和语法解析得到语法树,再从所述语法树中提取得到目标分区路径和当前用户标识。

可选地,所述接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识的步骤之前,还包括:

在接收到策略修改指令时,根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存;

所述根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限的步骤包括:

根据所述目标分区路径、当前用户标识和修改后的预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限。

可选地,所述策略修改指令携带的分区路径为含有通配符的字符串,所述在接收到策略修改指令时,根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存的步骤包括:

在接收到策略修改指令时,检索与所述含有通配符的字符串相对应的所有分区路径;

根据所述与所述含有通配符的字符串相对应的所有分区路径,和所述策略修改指令携带的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存。

可选地,所述根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限的步骤包括:

根据所述目标分区路径和预设鉴权策略获取与所述目标分区路径相映射的用户标识;

判断与所述目标分区路径相映射的用户标识与所述当前用户标识是否一致;

若与所述目标分区路径相映射的用户标识与所述当前用户标识一致,则所述当前用户具有所述目标分区的数据访问权限;

若与所述目标分区路径相映射的用户标识与所述当前用户标识不一致,则所述当前用户不具有所述目标分区的数据访问权限。

可选地,所述接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识的步骤之前,还包括:

在接收到权限对象添加指令时,在ranger的元数据中的权限管理表中添加数据仓库工具分区类型,以使用户能够通过hive端输入目标分区路径,所述权限管理表定义了ranger中待进行权限管理的对象。

可选地,所述若所述当前用户具有所述目标分区的数据访问权限,则允许hive端向所述当前用户提供所述目标分区的数据访问服务的步骤包括:

若所述当前用户具有所述目标分区的数据访问权限,获取所述用户标识的注册时间;

通过所述hive端向所述当前用户提供所述目标分区在所述注册时间以后更新的数据的数据访问服务。

进一步地,为实现上述目的,本发明还提供一种分区授权装置,所述分区授权装置应用于ranger端,所述分区授权装置包括:

接收模块,用于接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识;

验证模块,用于根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限;

访问模块,用于若所述当前用户具有所述目标分区的数据访问权限,则允许hive端向所述当前用户提供所述目标分区的数据访问服务。

进一步地,为实现上述目的,本发明还提供一种分区授权设备,所述分区授权设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的分区授权程序,所述分区授权程序被所述处理器执行时实现如上述所述的分区授权方法的步骤。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有分区授权程序,所述分区授权程序被处理器执行时实现如上所述的分区授权方法的步骤。

本发明通过接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识;根据目标分区路径、当前用户标识和预设鉴权策略验证当前用户是否具有目标分区的数据访问权限;若当前用户具有目标分区的数据访问权限,则允许hive端向当前用户提供目标分区的数据访问服务。本发明通过在ranger端增加分区鉴权策略,根据分区鉴权策略对hive端的数据访问服务进行分区授权,实现了不同业务用户只能操作与自己业务相关的分区数据,达到了数据隔离的目的,进而实现了金融基础设施(分布式、云计算、区块链等)的更细粒度的安全权限管理。

附图说明

图1为本发明分区授权设备实施例方案涉及的设备硬件运行环境的结构示意图;

图2为本发明分区授权方法第一实施例的流程示意图;

图3为本发明分区授权装置的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

需要说明的是,现有的apacheranger能很好地支持hadoop生态圈各组件的集中式管理,还能提供非常细粒度的权限管理,能满足日常大部分的安全权限管理需求。但其对hive的支持还是存在缺陷,例如不支持对分区表的分区权限控制。

基于上述缺陷,本发明提供一种分区授权设备,参照图1,图1为本发明分区授权设备实施例方案涉及的设备硬件运行环境的结构示意图。

如图1所示,该分区授权设备可以包括:处理器1001,例如cpu,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。

本领域技术人员可以理解,图1中示出的分区授权设备的硬件结构并不构成对分区授权设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及分区授权程序。其中,操作系统是管理和控制分区授权设备与软件资源的程序,支持网络通信模块、用户接口模块、分区授权程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。

在图1所示的分区授权设备硬件结构中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;处理器1001可以调用存储器1005中存储的分区授权程序,并执行以下操作:

接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识;

根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限;

若所述当前用户具有所述目标分区的数据访问权限,则允许hive端向所述当前用户提供所述目标分区的数据访问服务。

进一步地,所述目标分区路径和当前用户标识由hive端接收当前用户输入的请求访问目标分区的访问语句,对所述访问语句进行词法解析和语法解析得到语法树,再从所述语法树中提取得到目标分区路径和当前用户标识。

进一步地,所述接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识的步骤之前,处理器1001还用于调用存储器1005中存储的分区授权程序,并执行以下操作:

在接收到策略修改指令时,根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存;

所述根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限的步骤包括:

根据所述目标分区路径、当前用户标识和修改后的预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限。

进一步地,所述策略修改指令携带的分区路径为含有通配符的字符串,所述在接收到策略修改指令时,根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存的步骤包括:

在接收到策略修改指令时,检索与所述含有通配符的字符串相对应的所有分区路径;

根据所述与所述含有通配符的字符串相对应的所有分区路径,和所述策略修改指令携带的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存。

进一步地,所述根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限的步骤包括:

根据所述目标分区路径和预设鉴权策略获取与所述目标分区路径相映射的用户标识;

判断与所述目标分区路径相映射的用户标识与所述当前用户标识是否一致;

若与所述目标分区路径相映射的用户标识与所述当前用户标识一致,则所述当前用户具有所述目标分区的数据访问权限;

若与所述目标分区路径相映射的用户标识与所述当前用户标识不一致,则所述当前用户不具有所述目标分区的数据访问权限。

进一步地,所述接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识的步骤之前,处理器1001还用于调用存储器1005中存储的分区授权程序,并执行以下操作:

在接收到权限对象添加指令时,在ranger的元数据中的权限管理表中添加数据仓库工具分区类型,以使用户能够通过hive端输入目标分区路径,所述权限管理表定义了ranger中待进行权限管理的对象。

进一步地,所述若所述当前用户具有所述目标分区的数据访问权限,则允许hive端向所述当前用户提供所述目标分区的数据访问服务的步骤包括:

若所述当前用户具有所述目标分区的数据访问权限,获取所述用户标识的注册时间;

通过所述hive端向所述当前用户提供所述目标分区在所述注册时间以后更新的数据的数据访问服务。

本发明分区授权设备的具体实施方式与下述分区授权方法各实施例基本相同,在此不再赘述。

本发明还提供一种分区授权方法。

hadoop:是一个能够对大量数据进行分布式处理的开源软件框架。。

apacheranger:提供一个集中式安全管理框架,并解决授权和审计,它可以对hadoop生态的组件如hdfs、yarn(资源管理系统)、hive、hbase(分布式列存数据库)等进行细粒度的数据访问控制。通过控制ranger控制台,管理员可以轻松的通过配置策略来控制用户访问权限。

hive:一种基于hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql(structuredquerylanguage,结构化查询语言)查询功能,可以将sql语句转换为mapreduce任务进行运行,hive基于数据仓库,提供静态数据的动态查询,其使用类sql语言,底层经过编译转为mapreduce程序,在hadoop上运行,数据存储在hdfs(分布式文件系统)上。

由于现有大数据的安全权限管理方式,可对各个组件进行权限访问控制的管理,也可以对访问场景的权限控制管理,但是这些权限管理控制的方式,在细化粒度中还比较片面,远不符合银行机构等金融机构的实际需求。银行机构等金融机构对权限控制管理更加严格。

基于此,本发明实施例提供了分区授权方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在分区授权方法的各个实施例中,为了便于描述,省略执行主体进行阐述各个实施例。参照图2,图2为本发明分区授权方法第一实施例的流程示意图,所述分区授权方法应用于ranger端,所述分区授权方法包括:

步骤s10,接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识;

apacheranger能很好地支持hadoop生态圈各组件的集中式管理,还能提供非常细粒度的权限管理,能满足日常大部分的安全权限管理需求。但其对hive不支持分区权限控制,不能满足多级分区权限管理的需求。

为解决现有技术ranger不支持按分区进行权限控制的技术问题,本实施例在步骤s10之前还包括:对ranger的元数据表进行修改以在权限管理类型中新增分区类型项,具体地,管理员可以通过操作ranger端,在ranger的元数据中的权限管理表x_resource_def表中添加数据仓库工具分区hivepartition类型,x_resource_def表定义了ranger中需要进行权限管理的对象resource,例如某一个数据库、某一张表、某一列。

然后,对ranger端鉴权策略进行修改。在接收到策略修改指令时,ranger端根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存。具体地,在接收到策略修改指令时,ranger端根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改x_policy_resource_map表,x_policy_resource_map表中存储有预设鉴权策略,所述预设鉴权策略包括分区路径和与其相映射的具有访问该分区权限的用户标识。此外,该表中还可存储有其他类型权限管理对象(库、表、列)的鉴权策略,具体情况本实施例不做限制,可参见关于ranger授权策略的现有技术,本实施例不再赘述。

在本实施例中,在对ranger端的鉴权策略修改完成后,用户可通过hive端发起对目标分区的访问请求,访问请求以访问语句的形式发出,hive端接收到用户输入的请求访问目标分区的访问语句时,对该访问语句进行语法分析得到包含目标分区路径和当前用户标识的语法树,并将所述目标分区路径和当前用户标识发送给ranger端,以供ranger端获取所述访问语句携带的目标分区路径和当前用户标识。

其中,在运维人员根据产品标识、业务标识或其他分区规则为hive端的数据划分分区后,每个分区都对应有唯一的访问路径,即分区路径。

步骤s20,根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限;

在本实施例中,在获取到目标分区路径和当前用户标识后,需对当前用户的数据访问权限进行验证。具体地,根据所目标分区路径和预设鉴权策略获取与所述目标分区路径相映射的用户标识;判断与所述目标分区路径相映射的用户标识与所述当前用户标识是否一致;若与所述目标分区路径相映射的用户标识与所述当前用户标识一致,则所述当前用户具有所述目标分区的数据访问权限;若与所述目标分区路径相映射的用户标识与所述当前用户标识不一致,则所述当前用户不具有所述目标分区的数据访问权限。

步骤s30,若所述当前用户具有所述目标分区的数据访问权限,则允许hive端向所述当前用户提供所述目标分区的数据访问服务。

在本实施例中,若ranger端判定当前用户具有目标分区的数据访问权限,则允许hive端向当前用户提供目标分区的数据访问服务。

例如,在银行等金融机构中,若业务员通过hive端请求访问a产品的分区数据,ranger端根据预设鉴权策略判定业务员具有a产品的分区数据的数据访问权限,则ranger端通过hive端向该业务员提供a产品的分区数据的数据访问服务。

本实施例通过接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识;根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限;若所述当前用户具有所述目标分区的数据访问权限,则允许hive端向所述当前用户提供所述目标分区的数据访问服务。通过在ranger端增加分区鉴权策略,根据分区鉴权策略对hive端的数据访问服务进行分区授权,实现了不同业务用户只能操作与自己业务相关的分区数据,达到了数据隔离的目的,进而实现了更细粒度的安全权限管理,更加符合银行等金融机构的实际需求。

进一步地,提出本发明分区授权方法第二实施例,上述步骤s10之前还包括:

步骤s101,在接收到权限对象添加指令时,在ranger的元数据中的权限管理表中添加数据仓库工具分区类型,以使用户能够通过hive端输入目标分区路径,所述权限管理表定义了ranger中待进行权限管理的对象。

在本实施例中,在接收到管理员发起的权限对象添加指令时,对ranger的元数据表进行修改以在权限管理类型中新增分区类型项,具体地,管理员可以通过操作ranger端,在ranger的元数据中的权限管理表x_resource_def表中添加数据仓库工具分区类型,即hivepartition类型。其中,x_resource_def表定义了ranger中需要进行权限管理的对象resource,例如某一个数据库、某一张表、某一列。

进一步地,上述步骤s10之前还包括:

步骤s11,在接收到策略修改指令时,根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存;

所述步骤s20包括:

根据所述目标分区路径、当前用户标识和修改后的预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限。

具体地,根据所述目标分区路径和修改后的预设鉴权策略获取与所述目标分区路径相映射的用户标识;判断与所述目标分区路径相映射的用户标识与所述当前用户标识是否一致;若与所述目标分区路径相映射的用户标识与所述当前用户标识一致,则所述当前用户具有所述目标分区的数据访问权限;若与所述目标分区路径相映射的用户标识与所述当前用户标识不一致,则所述当前用户不具有所述目标分区的数据访问权限。

在本实施例中,在步骤s10之前还包括对ranger的元数据表进行修改以在权限管理类型中新增分区类型项,具体地,管理员可以通过操作ranger控制台,在ranger的元数据中的x_resource_def表中添加hivepartition类型,x_resource_def表定义了ranger中需要进行权限管理的对象resource,例如某一个数据库、某一张表、某一列。

然后,对ranger端鉴权策略进行修改。在接收到策略修改指令时,ranger端根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存。具体地,在接收到策略修改指令时,ranger端根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改x_policy_resource_map表,x_policy_resource_map表中存储有预设鉴权策略,所述预设鉴权策略包括分区路径和与其相映射的具有访问该分区权限的用户标识。此外,该表中还可存储有其他类型权限管理对象(库、表、列)的鉴权策略,具体情况本实施例不做限制,可参见关于ranger授权策略的现有技术,本实施例不再赘述。

进一步地,所述策略修改指令携带的分区路径为含有通配符的字符串,上述步骤s11包括:

在接收到策略修改指令时,检索与所述含有通配符的字符串相对应的所有分区路径;

根据所述与所述含有通配符的字符串相对应的所有分区路径,和所述策略修改指令携带的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存。

在本实施例中,管理员在设置鉴权策略时,需输入分区路径和对应的用户标识,但有时管理员可能需要设置一系列包含相同字符串的分区路径的权限,若是逐个输入分区路径效率较低。而通过输入含有通配符的字符串,在接收到策略修改指令时,ranger端根据上述含有通配符的字符串检索以获取相对应的所有分区路径,并将根据这些分区路径和用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存。例如,管理员想要查找以fintech开头的分区路径,可以输入fintech*查找以fintech开头的所有分区路径。

进一步地,ranger端根据上述含有通配符的字符串检索获取到相对应的所有分区路径后,可将这些分区路径反馈给管理员,以供选择,再根据管理员选择的分区路径与用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存。

进一步地,若用户不知道目标分区路径的真正字符或者不想键入完整路径时,用户也可采用通配符的方式输入分区路径。

进一步地,再根据目标分区路径、当前用户标识、和修改后的预设鉴权策略验证当前用户是否具有目标分区的数据访问权限。

进一步地,所述目标分区路径和当前用户标识由hive端接收当前用户输入的请求访问目标分区的访问语句,对所述访问语句进行词法解析和语法解析得到语法树,再从所述语法树中提取得到目标分区路径和当前用户标识。

在本实施例中,在对ranger端的鉴权策略修改完成后,用户可通过hive端发起对目标分区的访问请求,访问请求以访问语句的形式发出,hive端在接收到用户输入的请求访问目标分区的访问语句时,对该访问语句进行词法解析和语法解析得到语法树,语法树是所述访问语句的源代码的语法结构的树状表现形式,所述语法树上的每个节点表示所述访问语句中包含的一种语法结构,再从所述语法树中的节点上提取得到目标分区路径和当前用户标识,并将所述目标分区路径和当前用户标识发送给ranger端,以供ranger端获取所述访问语句携带的目标分区路径和当前用户标识。

进一步地,用户可通过下面两种方法向hive端发送对相关分区的访问语句,一种是beeline命令行工具,另一种是通过应用程序建立jdbc(javadatabaseconnectivity,java数据库连接)链接,以上两种方法择其一实施。

进一步地,上述步骤s20之后还包括:

若所述当前用户不具有所述目标分区的数据访问权限,则拒绝所述访问请求,并向所述hive端发送告警提示。

本实施例通过对ranger的元数据表进行修改,为不同分区配置鉴权策略,实现了更细粒度的安全权限管理。

进一步地,提出本发明分区授权方法第三实施例,上述步骤s20包括:

步骤s21,根据所述目标分区路径和预设鉴权策略获取与所述目标分区路径相映射的用户标识;

在本实施例中,在获取到目标分区路径和当前用户标识后,需根据目标分区路径、当前用户标识和预设鉴权策略对当前用户的数据访问权限进行验证。具体地,由于预设鉴权策略包括分区路径和与其相映射的具有访问该分区权限的用户标识,因此在获取到目标分区路径后,即可根据该目标分区路径从预设鉴权策略中获取与之相映射的具有访问该分区权限的用户标识。

进一步地,在步骤s21之前还可以包括:判断所述目标分区路径是否具有与之相映射的预设鉴权策略;若所述目标分区路径不具有与之相映射的预设鉴权策略,说明该目标分区对所有用户提供数据访问服务,即所有用户具有该目标分区的数据访问权限;若所述目标分区路径具有与之相映射的预设鉴权策略,则执行步骤s22。

步骤s22,判断与所述目标分区路径相映射的用户标识与所述当前用户标识是否一致;

步骤s23,若与所述目标分区路径相映射的用户标识与所述当前用户标识一致,则所述当前用户具有所述目标分区的数据访问权限;

步骤s24,若与所述目标分区路径相映射的用户标识与所述当前用户标识不一致,则所述当前用户不具有所述目标分区的数据访问权限。

在本实施例中,在根据目标分区路径和预设鉴权策略获取与目标分区路径相映射的用户标识后,根据与目标分区路径相映射的用户标识与当前用户标识是否一致判断当前用户是否具有目标分区的数据访问权限。具体地,若与目标分区路径相映射的用户标识与当前用户标识一致,则判定当前用户具有目标分区的数据访问权限;若与目标分区路径相映射的用户标识与当前用户标识不一致,则当前用户不具有目标分区的数据访问权限。

进一步地,为提高分区授权访问的细粒度性,上述步骤s30包括:

步骤s31,若所述当前用户具有所述目标分区的数据访问权限,获取所述用户标识的注册时间;

在本实施例中,为提高分区授权访问的细粒度性,使用户不能访问该用户注册时间以前的历史数据,进而降低了数据泄露风险。具体地,若判定当前用户具有目标分区的数据访问权限,则获取该用户标识的注册时间。

步骤s32,通过所述hive端向所述当前用户提供所述目标分区在所述注册时间以后更新的数据的数据访问服务。

在获取到该用户标识的注册时间后,通过hive端向当前用户提供目标分区在注册时间以后更新的数据的数据访问服务。例如,若当前用户请求访问a产品的分区数据,若当前用户具有a产品的分区数据的数据访问权限,且获取到当前用户的注册时间为2019年5月1日15:00,则ranger端通过hive端向当前用户提供a产品分区在2019年5月1日15:00以后更新的数据的数据访问服务,对于a产品分区在2019年5月1日15:00以前的数据不对当前用户提供数据访问服务,实现了新增用户只能看到最新的数据,不能访问历史数据,从而降低了数据泄露风险,实现更细粒度的安全权限管理。

进一步地,上述步骤s30之后还包括:

步骤s33,记录所述当前用户在所述hive端的操作日志,以供运维人员进行安全审计。

在本实施例中,ranger端会记录当前用户在hive端的操作日志,以供运维人员进行安全审计。审计是记录数据库中用户活动行为的一种机制,是对选定用户动作的监控和记录,它不但能记录谁访问了数据库,还能记录访问者对数据库进行了何种操作。在运维人员发现数据有可能被非法操作后,就可以通过操作日志对数据库的所有连接和操作进行审计,这样就可以发现非法用户的来源、使用的终端和会话时间等。

在本实施例中,通过在ranger端增加分区鉴权策略,根据分区鉴权策略对hive端的数据访问服务进行分区授权,实现了不同业务用户只能操作与自己业务相关的分区数据,达到了数据隔离的目的;还通过向用户提供目标分区在注册时间以后更新的数据的数据访问服务,实现了不同业务用户只能操作与自己业务相关的分区数据,且新增用户只能看到最新的数据,不能访问历史数据,从而降低了数据泄露风险,实现更细粒度的安全权限管理,更加符合银行等金融机构的实际需求。

本发明还提供一种分区授权装置。

参照图3,图3为本发明分区授权装置第一实施例的功能模块示意图,所述分区授权装置应用于ranger端,所述分区授权装置包括:

接收模块10,用于接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识;

验证模块20,用于根据所述目标分区路径、当前用户标识和预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限;

访问模块30,用于若所述当前用户具有所述目标分区的数据访问权限,则允许hive端向所述当前用户提供所述目标分区的数据访问服务。

进一步地,所述接收模块还用于:

接收由hive端发送的当前用户请求访问的目标分区的目标分区路径和当前用户标识,所述目标分区路径和当前用户标识由hive端接收当前用户输入的请求访问目标分区的访问语句,对所述访问语句进行词法解析和语法解析得到语法树,再从所述语法树中提取得到目标分区路径和当前用户标识。

进一步地,所述分区授权装置还包括:

保存模块,用于在接收到策略修改指令时,根据所述策略修改指令携带的分区路径和与所述分区路径相映射的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存;

所述验证模块还用于根据所述目标分区路径、当前用户识和修改后的预设鉴权策略验证所述当前用户是否具有所述目标分区的数据访问权限。

进一步地,所述保存模块还用于:

在接收到策略修改指令时,检索与所述含有通配符的字符串相对应的所有分区路径;

根据所述与所述含有通配符的字符串相对应的所有分区路径,和所述策略修改指令携带的用户标识修改预设鉴权策略,并将修改后的预设鉴权策略保存。

进一步地,所述验证模块还用于:

根据所述目标分区路径和预设鉴权策略获取与所述目标分区路径相映射的用户标识;

判断与所述目标分区路径相映射的用户标识与所述当前用户标识是否一致;

若与所述目标分区路径相映射的用户标识与所述当前用户标识一致,则所述当前用户具有所述目标分区的数据访问权限;

若与所述目标分区路径相映射的用户标识与所述当前用户标识不一致,则所述当前用户不具有所述目标分区的数据访问权限。

进一步地,所述分区授权装置还包括:

添加模块,用于在接收到权限对象添加指令时,在ranger的元数据中的权限管理表中添加数据仓库工具分区类型,以使用户能够通过hive端输入目标分区路径,所述权限管理表定义了ranger中待进行权限管理的对象。

进一步地,所述访问模块还用于:

若所述当前用户具有所述目标分区的数据访问权限,获取所述用户标识的注册时间;

通过所述hive端向所述当前用户提供所述目标分区在所述注册时间以后更新的数据的数据访问服务。

本发明分区授权装置具体实施方式与上述分区授权方法各实施例基本相同,在此不再赘述。

此外,本发明实施例还提出一种计算机可读存储介质。

计算机可读存储介质上存储有分区授权程序,分区授权程序被处理器执行时实现如上所述的分区授权方法的步骤。

本发明计算机可读存储介质具体实施方式与上述分区授权方法各实施例基本相同,在此不再赘述。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。

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