一种用于Spark SQL的用户权限控制方法和系统技术方案

技术编号:19858483 阅读:22 留言:0更新日期:2018-12-22 11:54
本发明专利技术公开了一种用于Spark SQL的用户权限控制方法和系统,该方法包括:预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心;各Spark SQL引擎获取权限管理中心中所有数据库的全量权限信息;获取用户输入的SQL语句,并摘取该SQL语句的权限元素;将权限元素和全量权限信息进行比对,判断当前用户是否有执行当前SQL语句的权限;返回权限判断结果。通过对各目标数据库进行不同维度的分权控制,各Spark SQL引擎在获取用户输入的语句时,判断其是否具有执行该语句的权限,当多用户协同开发时,每个用户被赋予的权限不同,各自只能在自身所被赋予的权限内操作,实现了更细粒度的按需的保证用户各自数据的安全。

【技术实现步骤摘要】
一种用于SparkSQL的用户权限控制方法和系统
本专利技术涉及大数据领域,特别是涉及一种用于SparkSQL的用户权限控制方法和系统。
技术介绍
Spark技术是大数据技术中公认的最有发展、使用最多的一门技术,是当前各行各业相推动和依赖的技术。Spark作为一个通用引擎,能够用来完成各种各样的运算,其中包括SQL查询、文本处理和机器学习等。在很多行业中,大量数据分析人员每天运行数以万计的SparkSQL任务作为数据分析和业务决策。而SparkSQL本身是支持认证的,即需要使用SparkSQL的使用者,需要通过用户名和密码的方式进行登录才能正常使用,但是当多用户协同开发时,每个用户的权限相同,不能保证各自的数据安全。因此,如何在用户使用SparkSQL时,保证用户自身的数据安全是本领域技术人员目前需要解决的技术问题。
技术实现思路
本专利技术的目的是提供一种用于SparkSQL的用户权限控制方法和系统,可以在用户使用SparkSQL时,保证用户自身的数据安全。为解决上述技术问题,本专利技术提供了如下技术方案:一种用于SparkSQL的用户权限控制方法,包括:预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心;各SparkSQL引擎获取所述权限管理中心中所有数据库的全量权限信息;获取用户输入的SQL语句,并摘取该SQL语句的权限元素;将所述权限元素和所述全量权限信息进行比对,判断当前用户是否有执行当前SQL语句的权限;返回权限判断结果。优选地,所述获取用户输入的SQL语句,并摘取该SQL语句的权限元素,包括:获取用户输入的SQL语句;根据预设的SQL语法定义进行语法解析,生成语法树;摘取所述语法树中需要进行权限控制的元素作为该SQL语句的权限元素。优选地,所述预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心,包括:预先对各目标数据库按照库、表、列进行维度分级,其中,库级为最大的授权单元,列级为最小的授权单位;建立用于响应预设授权用户操作进行权限按级配置的权限管理页面,所述权限管理页面包括和预设的目标数据库的各级授权单元一一对应映射的权限配置单元;建立所述权限管理中心,通过所述权限管理中心对所述权限管理页面配置的所有目标数据库的各自对应的分级的权限信息进行汇总和持久化。优选地,还包括:获取目标群体的用户的属性信息;根据所述属性信息以及预设的属性信息特征对所述目标群体的用户进行角色分类;通过所述权限管理页面对角色分类得到的角色进行一一对应映射;将相应的目标数据库的对应级别的授权单元的操作权限赋予对应的角色。优选地,在各SparkSQL引擎获取所述权限管理中心中所有数据库的全量权限信息的同时,还包括:以版本号的形式将所述全量权限信息在本地进行缓存,以通过所述版本号来判断本地当前所缓存的所述全量权限信息是否需要更新。一种用于SparkSQL的用户权限控制系统,包括:权限管理中心建立模块,用于预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心;获取模块,各SparkSQL引擎通过所述获取模块获取所述权限管理中心中所有数据库的全量权限信息;摘取模块,用于获取用户输入的SQL语句,并摘取该SQL语句的权限元素;判断模块,用于将所述权限元素和所述全量权限信息进行比对,判断当前用户是否有执行当前SQL语句的权限;结果返回模块,用于返回权限判断结果。优选地,所述摘取模块包括:第一获取单元,用于获取用户输入的SQL语句;解析单元,用于根据预设的SQL语法定义进行语法解析,生成语法树;摘取单元,用于摘取所述语法树中需要进行权限控制的元素作为该SQL语句的权限元素。优选地,所述权限管理中心建立模块包括:分级单元,用于预先对各目标数据库按照库、表、列进行维度分级,其中,库级为最大的授权单元,列级为最小的授权单位;权限管理页面单元,用于建立用于响应预设授权用户操作进行权限按级配置的权限管理页面,所述权限管理页面包括和预设的目标数据库的各级授权单元一一对应映射的权限配置单元;权限管理中心建立单元,用于建立所述权限管理中心,通过所述权限管理中心对所述权限管理页面配置的所有目标数据库的各自对应的分级的权限信息进行汇总和持久化。优选地,还包括:第二获取单元,用于获取目标群体的用户的属性信息;角色分类单元,用于根据所述属性信息以及预设的属性信息特征对所述目标群体的用户进行角色分类;映射单元,用于通过所述权限管理页面对角色分类得到的角色进行一一对应映射;角色赋权单元,用于将相应的目标数据库的对应级别的授权单元的操作权限赋予对应的角色。优选地,还包括:本地缓存模块,用于以版本号的形式将所述全量权限信息在本地进行缓存,以通过所述版本号来判断本地当前所缓存的所述全量权限信息是否需要更新。与现有技术相比,上述技术方案具有以下优点:本专利技术实施例所提供的一种用于SparkSQL的用户权限控制方法,包括:预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心;各SparkSQL引擎获取权限管理中心中所有数据库的全量权限信息;获取用户输入的SQL语句,并摘取该SQL语句的权限元素;将权限元素和全量权限信息进行比对,判断当前用户是否有执行当前SQL语句的权限;返回权限判断结果。通过建立权限管理中心对各目标数据库进行不同维度的分权控制,并对分权控制的权限信息进行汇总和持久化,各SparkSQL引擎在获取用户输入的语句时,判断该用户是否具有执行该语句的权限,这样,用户在登录正常使用时,也会根据自身被授予的分权控制权限进行权限内的操作;当多用户协同开发时,每个用户被赋予的权限不同,各自只能在自身所被赋予的权限内进行操作,从而实现了更细粒度的,按需的保证用户各自数据的安全。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一种具体实施方式所提供的用于SparkSQL的用户权限控制方法流程图;图2为本专利技术一种具体实施方式所提供的用于SparkSQL的用户权限控制系统示意图。具体实施方式本专利技术的核心是提供一种用于SparkSQL的用户权限控制方法和系统,可以在用户使用SparkSQL时,保证用户自身的数据安全。为了使本专利技术的上述目的、特征和优点能够更为明显易懂,下面结合附图对本专利技术的具体实施方式做详细的说明。在以下描述中阐述了具体细节以便于充分理解本专利技术。但是本专利技术能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本专利技术内涵的情况下做类似推广。因此本专利技术不受下面公开的具体实施的限制。请参考图1,图1为本专利技术一种具体实施方式所提供的用于SparkSQL的用户权限控制方法流程图。本专利技术的一种具体实施方式提供了一种用于SparkSQL的用户权限控制方法,包括:S11:预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心。在本专利技术的一种实施方式中,预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权本文档来自技高网...

【技术保护点】
1.一种用于Spark SQL的用户权限控制方法,其特征在于,包括:预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心;各Spark SQL引擎获取所述权限管理中心中所有数据库的全量权限信息;获取用户输入的SQL语句,并摘取该SQL语句的权限元素;将所述权限元素和所述全量权限信息进行比对,判断当前用户是否有执行当前SQL语句的权限;返回权限判断结果。

【技术特征摘要】
1.一种用于SparkSQL的用户权限控制方法,其特征在于,包括:预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心;各SparkSQL引擎获取所述权限管理中心中所有数据库的全量权限信息;获取用户输入的SQL语句,并摘取该SQL语句的权限元素;将所述权限元素和所述全量权限信息进行比对,判断当前用户是否有执行当前SQL语句的权限;返回权限判断结果。2.根据权利要求1所述的方法,其特征在于,所述获取用户输入的SQL语句,并摘取该SQL语句的权限元素,包括:获取用户输入的SQL语句;根据预设的SQL语法定义进行语法解析,生成语法树;摘取所述语法树中需要进行权限控制的元素作为该SQL语句的权限元素。3.根据权利要求1或2所述的方法,其特征在于,所述预先建立用于对各目标数据库的相应分权控制权限信息进行汇总和持久化的权限管理中心,包括:预先对各目标数据库按照库、表、列进行维度分级,其中,库级为最大的授权单元,列级为最小的授权单位;建立用于响应预设授权用户操作进行权限按级配置的权限管理页面,所述权限管理页面包括和预设的目标数据库的各级授权单元一一对应映射的权限配置单元;建立所述权限管理中心,通过所述权限管理中心对所述权限管理页面配置的所有目标数据库的各自对应的分级的权限信息进行汇总和持久化。4.根据权利要求3所述的方法,其特征在于,还包括:获取目标群体的用户的属性信息;根据所述属性信息以及预设的属性信息特征对所述目标群体的用户进行角色分类;通过所述权限管理页面对角色分类得到的角色进行一一对应映射;将相应的目标数据库的对应级别的授权单元的操作权限赋予对应的角色。5.根据权利要求4所述的方法,其特征在于,在各SparkSQL引擎获取所述权限管理中心中所有数据库的全量权限信息的同时,还包括:以版本号的形式将所述全量权限信息在本地进行缓存,以通过所述版本号来判断本地当前所缓存的所述全量权限信息是否需要更新。6.一种用于SparkSQL的用户权限控制系统,其特征...

【专利技术属性】
技术研发人员:黄宁包衍
申请(专利权)人:杭州数梦工场科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1