访问权限控制方法、系统、电子设备及存储介质技术方案

技术编号:37494265 阅读:14 留言:0更新日期:2023-05-07 09:32
本申请公开一种访问权限控制方法、系统、电子设备及存储介质。该方法包括:在数据库组件中提供一个或多个库及其中的一个或多个表;在Ranger权限控制组件中提供访问权限配置,所述访问权限配置用于控制用户通过所述数据仓库组件访问所述数据库表的访问权限;由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置;当所述用户经所述Presto查询引擎访问所述一个或多个表时,基于所拉取的所述访问权限配置控制所述用户的访问权限。控制所述用户的访问权限。控制所述用户的访问权限。

【技术实现步骤摘要】
访问权限控制方法、系统、电子设备及存储介质


[0001]本申请涉及大数据
、尤其涉及分布式文件处理技术,具体涉及一种访问权限控制方法、系统以及相关的电子设备及存储介质。

技术介绍

[0002]当前,大数据被广泛应用于各个行业,例如金融科技(FinTech)行业。包括Hadoop在内的分布式大数据架构进而得以广泛使用。例如,Hadoop作为Apache基金会开源的分布式系统架构形成了包括众多组件,例如Apache Hive、Apache Ranger等的完善生态圈。
[0003]Apache Hive(简称Hive)是基于Hadoop的数据仓库工具,可用于访问Hadoop中文件存储系统中存储的数据。得益于Hive学习成本低、易用性、能够处理海量数据等优点,Hive在多个行业被广泛使用。例如在金融科技领域,Hive被广泛用于进行联机分析处理(OLAP)。Hive自身对于其中的数据访问提供了较为粗糙的权限控制,可能无法满足数据提供者对于用户高精细度的管控。
[0004]Presto是由facebook开源的分布式SQL查询引擎,适用于交互式分析查询。Presto可以与多种数据库组件、尤其是数据仓库组件对接。Presto提供了对Hive数据仓库的良好适配性及适配于Hadoop生态圈,用户能够透过Presto可以快速查询Hive数据仓库中的大容量的数据表,其可能达到PB/GB级别。当用户透过Presto去查询或以其他方式操作数据库组件中的数据表时,Presto自身也提供了较为粗糙的权限控制,可能无法满足数据提供者对于用户高精细度的管控。
[0005]Apache Ranger(简称Ranger)为基于Hadoop架构的大数据平台的权限控制组件,其能对接Hadoop生态圈中的多种组件及其他组件、如HDFS、YARN、Hive等进行访问权限管控。Ranger与Hive整合时能够提供较高精细度的访问权限控制以及字段脱敏等功能。Ranger也提供了与Presto的整合,然而这是通过独立于Hive的权限控制而实现的。当用Ranger对Hive和Presto均进行权限管控时,会造成数据提供者需要投入大量的工作以便即使统一用户通过这两个组件对相同数据的访问权限,这带来了大量的业务调度作业。而用户通过这两个组件的访问权限的不统一,会造成用户访问权限控制差异,影响用户体验,甚至系统错误。且当Presto被用于访问Hive中的数据表时,这往往需要两次鉴权,进一步影响了用户体验。
[0006]因此,希望可以提供一种解决方案,以实现在Presto与连用的数据库组件、如Hive中提供统一的且高精细度的权限控制,具有良好的用户使用体验。
[0007]上述描述仅作为了解本领域相关技术的背景,并非承认其属于现有技术。

技术实现思路

[0008]因此,本专利技术实施例意图提供一种访问权限控制方法和系统以及相关的电子设备及存储介质,其能实现在Presto与连用的数据库组件、如Hive中提供统一的且高精细度的权限控制,具有良好的用户使用体验,而且这种权限控制的实现无需业务调度作业的大幅
改动,亦能以用户几乎无感知的方式实现。
[0009]在第一方面,提供一种访问权限控制方法,包括:
[0010]在数据库组件中提供一个或多个库及其中的一个或多个表;
[0011]在Ranger权限控制组件中提供访问权限配置,所述访问权限配置用于控制用户通过所述数据仓库组件访问所述数据库表的访问权限;
[0012]由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置;
[0013]当所述用户经所述Presto查询引擎访问所述一个或多个表时,基于所拉取的所述访问权限配置控制所述用户的访问权限。
[0014]在一些实施例中,所述访问权限控制方法还包括:
[0015]由数据库组件从所述Ranger权限控制组件中拉取所述访问权限配置,从而所述数据库组件与所述Presto查询引擎共用所述访问权限配置;
[0016]当所述用户经所述数据库组件访问所述一个或多个表时,基于所拉取的所述访问权限配置控制所述用户的访问权限。
[0017]在一些实施例中,所述数据库组件为Hive数据仓库组件。
[0018]在一些实施例中,所述在数据库组件中提供一个或多个库及其中的一个或多个表,包括:
[0019]在存储单元中存储用户可访问的数据;
[0020]通过所述Hive数据仓库组件将所述数据映射成所述一个或多个表。
[0021]在一些实施例中,所述由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,包括:
[0022]针对所述数据库组件的操作类型,在所述访问控制接口中定义对应的操作类型;
[0023]针对所述数据库组件的对象类型,在所述访问控制接口中定义对应的对象类型;
[0024]检验并获取所述用户对所述数据库组件中的所述一个或多个表的访问权限。
[0025]在一些实施例中,所述检验并获取所述用户对所述数据库组件中的所述一个或多个表的访问权限,包括:
[0026]检验并获取所述用户对所述一个或多个表所属的库访问权限;
[0027]检验并获取所述用户对所述一个或多个表本身的表访问权限;
[0028]检验并获取所述用户对所述一个或多个表中的字段访问权限。
[0029]在一些实施例中,所述由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,还包括:
[0030]基于经检验及所获取的所述库访问权限,过滤掉用户无访问权限的库信息;
[0031]基于经检验及所获取的所述表访问权限,过滤掉用户无访问权限的表信息。
[0032]在一些实施例中,所述由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,包括:
[0033]在所述检验之前,加载Presto查询引擎的非默认的配置选型模块,用于执行所述的检验和获取。
[0034]在一些实施例中,所述的访问权限控制方法还包括:
[0035]通过加载所述Ranger权限控制组件的第一类加载器,由数据库组件从所述Ranger
权限控制组件中拉取所述访问权限配置;
[0036]其中,所述由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,包括:
[0037]通过加载所述Ranger权限控制组件的第二类加载器,由所述Presto查询引擎从所述Ranger权限控制组件中拉取所述访问权限配置。
[0038]在一些实施例中,所述的访问权限控制方法还包括:
[0039]由数据库组件从所述Ranger权限控制组件的拉取插件中拉取所述访问权限配置;
[0040]其中,所述Presto查询引擎调用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种访问权限控制方法,包括:在数据库组件中提供一个或多个库及其中的一个或多个表;在Ranger权限控制组件中提供访问权限配置,所述访问权限配置用于控制用户通过所述数据仓库组件访问所述数据库表的访问权限;由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置;当所述用户经所述Presto查询引擎访问所述一个或多个表时,基于所拉取的所述访问权限配置控制所述用户的访问权限。2.根据权利要求1所述的访问权限控制方法,其特征在于,还包括:由数据库组件从所述Ranger权限控制组件中拉取所述访问权限配置,从而所述数据库组件与所述Presto查询引擎共用所述访问权限配置;当所述用户经所述数据库组件访问所述一个或多个表时,基于所拉取的所述访问权限配置控制所述用户的访问权限。3.根据权利要求1或2所述的访问权限控制方法,所述数据库组件为Hive数据仓库组件,所述在数据库组件中提供一个或多个库及其中的一个或多个表,包括:在存储单元中存储用户可访问的数据;通过所述Hive数据仓库组件将所述数据映射成所述一个或多个表。4.根据权利要求1至3中任一项所述的访问权限控制方法,其特征在于,所述由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,包括:针对所述数据库组件的操作类型,在所述访问控制接口中定义对应的操作类型;针对所述数据库组件的对象类型,在所述访问控制接口中定义对应的对象类型;检验并获取所述用户对所述数据库组件中的所述一个或多个表的访问权限。5.根据权利要求4所述的访问权限控制方法,其特征在于,所述检验并获取所述用户对所述数据库组件中的所述一个或多个表的访问权限,包括:检验并获取所述用户对所述一个或多个表所属的库访问权限;检验并获取所述用户对所述一个或多个表本身的表访问权限;检验并获取所述用户对所述一个或多个表中的字段访问权限。6.根据权利要求5所述的访问权限控制方法,其特征在于,所述由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,还包括:基于经检验及所获取的所述库访问权限,过滤掉用户无访问权限的库信息;基于经检验及所获取的所述表访问权限,过滤掉用户无访问权限的表信息。7.根据权利要求4至6中任一项所述的访问权限控制方法,其特征在于,所述由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,包括:在所述检验之前,加载Presto查询引擎的非默认的配置选型模块,用于执行所述的检验和获取。8.根据权利要求1至7中任一项所述的访问权限控制方法,其特征在于,还包括:
通过加载所述Ranger权限控制组件的第一类加载器,由数据库组件从所述Ranger权限控制组件中拉取所述访问权限配置;其中,所述由Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,包括:通过加载所述Ranger权限控制组件的第二类加载器,由所述Presto查询引擎从所述Ranger权限控制组件中拉取所述访问权限配置。9.根据权利要求1至8中任一项所述的访问权限控制方法,其特征在于,所述Ranger权限控制组件包括用于所述数据库组件的拉取插件;所述Presto查询引擎调用改写的访问控制接口从所述Ranger权限控制组件中拉取所述访问权限配置,包括:从所述Ranger权限控制组件的所述拉取插件拉取所述访问权限配置。10.根据权利要求1至9中任一项所述的访问权限控制方法,其特征在于,还包括:设置所述Presto查询引擎的catalog目录下的针对所述数据库组件的属性配置文...

【专利技术属性】
技术研发人员:郭旭
申请(专利权)人:百融云创科技股份有限公司
类型:发明
国别省市:

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

1