关于Hive的授权研究
因为最近在学习hive的相关知识,就把最近看的一些资料总结了一下,使用的hive是3.1.2版本,应该是比较新的,所以如果文章有不对的地方,希望大佬指正。
Hive的权限控制
简介:
- Hive的真实数据存储在Hadoop的HDFS文件系统中,Hive构建逻辑表。
- Hive的元数据存储在Mysql当中。
- Hive有默认的Derby数据库,由于是内嵌的文件数据库,只支持一个用户的操作访问,支持多用户需用mysql保存元数据。并且存在找不到原有创建的数据库和表的信息,所以会将默认的Derby数据库进行更换为Mysql。
Hive中提供的授权管理模型:
== 以下是查看官方文档给出的几种模型 ==
- Old default Hive Authorization (Legacy Mode)
Hive旧的默认授权(Hive 2.0.0之前是默认)是Hive早期版本中可用的授权模式。但是,此模式没有完整的访问控制模型,从而导致许多安全漏洞无法解决。例如,未定义授予用户权限所需的许可,并且任何用户都可以向自己授予对表或数据库的访问权限。 - storage based authorization
基于存储的授权使用对应的文件夹的文件系统权限作为授权策略的真实来源。建议在metastore中使用基于存储的授权。 - SQL Standards Based Authorization
尽管基于存储的授权可以在数据库,表和分区级别提供访问控制,但是由于文件系统提供的访问控制针对文件,它无法控制授权更细的粒度。
基于SQL标准的授权(在Hive 0.13.0中引入,HIVE-5837)可用于启用细粒度的访问控制。它基于用于授权的SQL标准,并使用熟悉的grant / revoke语句来控制访问。需要通过HiveServer2配置启用它。 - 通过apache Ranger进行授权管理
apache Ranger是一个总体管理模块,具体的信息可以移步官网查看-- apache ranger