多租户权限控制方法及装置制造方法及图纸

技术编号:24684608 阅读:44 留言:0更新日期:2020-06-27 08:17
本发明专利技术提供了多租户权限控制方法及装置,方法包括:接收外部一用户端发来的、用于请求查询Hive中数据的查询请求,查询请求包括第一用户标识和用于标识待查询数据的第一数据标识;利用Spark的Logic Plan,获取查询请求中包括的第一用户标识和第一数据标识;调用Ranger应用程序接口API,访问Ranger中已配置的Hive访问权限策略,Hive访问权限策略包括至少两个用户标识中每一个用户标识的查询权限,查询权限对应有的数据标识;根据Hive访问权限策略,判断第一用户标识是否具有第一数据标识的查询权限,若否,不允许用户端访问Hive中具有第一数据标识的数据。本发明专利技术能够能够解决多租户场景下通过Spark访问Hive数据时Ranger无法控制其权限的问题。

Multi tenant authority control method and device

【技术实现步骤摘要】
多租户权限控制方法及装置
本专利技术涉及计算机
,特别涉及多租户权限控制方法及装置。
技术介绍
随着技术的进步,为了加快推动数据资源共享开放和开发应用,大数据的发展是必要的,因此,如何采集、存储和计算数据成为了当前热点话题。Hive(分布式文件系统)和Spark(基于内存的分布式计算框架)分别作为当前大数据领域内存储和计算使用最多的技术,可以通过Spark访问Hive中的数据。但是Spark也要面临一个问题,即在多租户的应用场景下,Spark在访问Hive时存在着安全问题,无法做到不同用户的权限控制。
技术实现思路
本专利技术提供了多租户权限控制方法及装置,能够解决多租户场景下通过Spark访问Hive数据时Ranger无法控制其权限的问题。第一方面,本专利技术实施例提供了多租户权限控制方法,包括:接收外部一用户端发来的、用于请求查询Hive中数据的查询请求,所述查询请求包括第一用户标识和用于标识待查询数据的第一数据标识;利用Spark的LogicPlan,获取所述查询请求中包括的所述第一用户标识和所述第一数据标识;调用Ranger应用程序接口API,访问Ranger中已配置的Hive访问权限策略,所述Hive访问权限策略包括至少两个用户标识中每一个用户标识的查询权限,所述查询权限对应有的数据标识;根据所述Hive访问权限策略,判断所述第一用户标识是否具有所述第一数据标识的查询权限,若否,不允许所述用户端访问所述Hive中具有所述第一数据标识的数据。优选地,所述第一数据标识包括:第一数据库标识和第一数据表标识;其中,所述查询权限包括:至少一个数据库标识和每一个该数据库标识所对应的至少一个数据表标识;所述根据所述Hive访问权限策略,判断所述第一用户标识是否具有所述第一数据标识的查询权限,若否,不允许所述用户端访问所述Hive中具有所述第一数据标识的数据,包括:A1:判断所述Hive访问权限策略是否包括所述第一用户标识的第一查询权限,若是,执行A2,否则,执行A4;A2:判断所述第一查询权限是否包括所述第一数据库标识,若是,执行A3,否则,执行A4;A3:判断所述第一查询权限中的所述第一数据库标识是否对应有所述第一数据表标识,否则,执行A4;A4:不允许所述用户端访问所述Hive中目的数据库中目的数据表中的数据,其中,所述目的数据库具有所述第一数据库标识,所述目的数据表具有所述第一数据表标识。优选地,还包括:A3中判断结果为是时,允许所述用户端访问所述Hive中所述目的数据库中所述目的数据表中的数据。优选地,所述利用Spark的LogicPlan,获取所述查询请求中包括的所述第一用户标识和所述第一数据标识,包括:利用Spark中的${SPARK_HOME}/jars目录下的预先编译好的Authorization类代码,通过解析Spark的LogicPlan,获取所述查询请求中的所述第一用户标识和所述第一数据标识。优选地,所述调用Ranger应用程序接口API,访问Ranger中已配置的Hive访问权限策略,包括:利用Spark中的${SPARK_HOME}/jars目录下的预先编译好的RangerHelper类代码,通过调用RangerAPI,访问Ranger中已配置的所述Hive访问权限策略。第二方面,本专利技术实施例提供了多租户权限控制装置,包括:接收模块、获取模块、访问模块和判断模块;所述接收模块,用于接收外部一用户端发来的、用于请求查询Hive中数据的查询请求,所述查询请求包括第一用户标识和用于标识待查询数据的第一数据标识;所述获取模块,用于利用Spark的LogicPlan,获取所述查询请求中包括的所述第一用户标识和所述第一数据标识;所述访问模块,用于调用Ranger应用程序接口API,访问Ranger中已配置的Hive访问权限策略,所述Hive访问权限策略包括至少两个用户标识中每一个用户标识的查询权限,所述查询权限对应有的数据标识;所述判断模块,用于根据所述Hive访问权限策略,判断所述第一用户标识是否具有所述第一数据标识的查询权限,若否,不允许所述用户端访问所述Hive中具有所述第一数据标识的数据。优选地,所述第一数据标识包括:第一数据库标识和第一数据表标识;其中,所述查询权限包括:至少一个数据库标识和每一个该数据库标识所对应的至少一个数据表标识;所述判断模块,用于执行下述内容:A1:判断所述Hive访问权限策略是否包括所述第一用户标识的第一查询权限,若是,执行A2,否则,执行A4;A2:判断所述第一查询权限是否包括所述第一数据库标识,若是,执行A3,否则,执行A4;A3:判断所述第一查询权限中的所述第一数据库标识是否对应有所述第一数据表标识,否则,执行A4;A4:不允许所述用户端访问所述Hive中目的数据库中目的数据表中的数据,其中,所述目的数据库具有所述第一数据库标识,所述目的数据表具有所述第一数据表标识。优选地,所述判断单元,还用于执行:A3中判断结果为是时,允许所述用户端访问所述Hive中所述目的数据库中所述目的数据表中的数据。优选地,所述获取模块,在执行所述利用Spark的LogicPlan,获取所述查询请求中包括的所述第一用户标识和所述第一数据标识时,具体执行:利用Spark中的${SPARK_HOME}/jars目录下的预先编译好的Authorization类代码,通过解析Spark的LogicPlan,获取所述查询请求中的所述第一用户标识和所述第一数据标识。优选地,所述访问单元,在执行所述调用Ranger应用程序接口API,访问Ranger中已配置的Hive访问权限策略时,具体执行:利用Spark中的${SPARK_HOME}/jars目录下的预先编译好的RangerHelper类代码,通过调用RangerAPI,访问Ranger中已配置的所述Hive访问权限策略。本专利技术实施例提供了多租户权限控制方法及装置,方法包括:接收一外部用户终端发来的包含第一用户标识和用于标识待查询数据的第一数据标识;利用Spark的LogicPlan获取第一用户标识和第一数据标识,确认用户的身份和该用户请求的数据;调用Ranger的API访问已配置的Hive访问权限策略,根据Hive访问策略判断该用户是否具有查询其所请求查询的数据的权限,若否,则不允许该用户端访问其请求的数据。本专利技术在多租户应用场景下,提供了一种有效的权限控制方法,在通过Spark查询Hive中的数据时无法跳过权限验证,用户只能访问其具有访问权限的数据,保障了数据的安全,解决了多租户场景下通过Spark访问Hive数据时Ranger无法控制其权限的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术本文档来自技高网...

【技术保护点】
1.多租户权限控制方法,其特征在于,包括:/n接收外部一用户端发来的、用于请求查询Hive中数据的查询请求,所述查询请求包括第一用户标识和用于标识待查询数据的第一数据标识;/n利用Spark的Logic Plan,获取所述查询请求中包括的所述第一用户标识和所述第一数据标识;/n调用Ranger应用程序接口API,访问Ranger中已配置的Hive访问权限策略,所述Hive访问权限策略包括至少两个用户标识中每一个用户标识的查询权限,所述查询权限对应有的数据标识;/n根据所述Hive访问权限策略,判断所述第一用户标识是否具有所述第一数据标识的查询权限,若否,不允许所述用户端访问所述Hive中具有所述第一数据标识的数据。/n

【技术特征摘要】
1.多租户权限控制方法,其特征在于,包括:
接收外部一用户端发来的、用于请求查询Hive中数据的查询请求,所述查询请求包括第一用户标识和用于标识待查询数据的第一数据标识;
利用Spark的LogicPlan,获取所述查询请求中包括的所述第一用户标识和所述第一数据标识;
调用Ranger应用程序接口API,访问Ranger中已配置的Hive访问权限策略,所述Hive访问权限策略包括至少两个用户标识中每一个用户标识的查询权限,所述查询权限对应有的数据标识;
根据所述Hive访问权限策略,判断所述第一用户标识是否具有所述第一数据标识的查询权限,若否,不允许所述用户端访问所述Hive中具有所述第一数据标识的数据。


2.根据权利要求1所述的方法,其特征在于,
所述第一数据标识包括:第一数据库标识和第一数据表标识;
其中,所述查询权限包括:至少一个数据库标识和每一个该数据库标识所对应的至少一个数据表标识;
所述根据所述Hive访问权限策略,判断所述第一用户标识是否具有所述第一数据标识的查询权限,若否,不允许所述用户端访问所述Hive中具有所述第一数据标识的数据,包括:
A1:判断所述Hive访问权限策略是否包括所述第一用户标识的第一查询权限,若是,执行A2,否则,执行A4;
A2:判断所述第一查询权限是否包括所述第一数据库标识,若是,执行A3,否则,执行A4;
A3:判断所述第一查询权限中的所述第一数据库标识是否对应有所述第一数据表标识,否则,执行A4;
A4:不允许所述用户端访问所述Hive中目的数据库中目的数据表中的数据,其中,所述目的数据库具有所述第一数据库标识,所述目的数据表具有所述第一数据表标识。


3.根据权利要求2所述的方法,其特征在于,
进一步包括:A3中判断结果为是时,允许所述用户端访问所述Hive中所述目的数据库中所述目的数据表中的数据。


4.根据权利要求1所述的方法,其特征在于,
所述利用Spark的LogicPlan,获取所述查询请求中包括的所述第一用户标识和所述第一数据标识,包括:
利用Spark中的${SPARK_HOME}/jars目录下的预先编译好的Authorization类代码,通过解析Spark的LogicPlan,获取所述查询请求中的所述第一用户标识和所述第一数据标识。


5.根据权利要求1所述的方法,其特征在于,
所述调用Ranger应用程序接口API,访问Ranger中已配置的Hive访问权限策略,包括:
利用Spark中的${SPARK_HOME}/jars目录下的预先编译好的RangerHelper类代码,通过调...

【专利技术属性】
技术研发人员:周永进刘传涛
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:山东;37

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

1