权限管控
基本概述
Hive可以通过四种方式配置用户权限。
- 在元数据服务中基于存储的授权:这种方式直接对存储在HDFS上的文件、MetaStore中的元数据进行权限控制,但粒度较粗。
- HiveServer2中基于标准SQL的授权:这种授权方式,兼容标准SQL,授权粒度较细,在SQL执行时可以对权限有一个精准的把控。
- 基于Apache Ranger & Sentry的组件授权:需要依赖第三方组件实现。
- 基于旧版模式的授权:与SQL授权相似,但并不完善,访问控制不完整,有漏洞尚未解决。
一般而言,会推荐使用基于存储的授权和基本标准SQL的授权,来对Hive进行权限管控。
基于存储的授权(Storage Based Authorization)
基于存储的授权在Hive 0.10版本后引入,在Metastore Server中,安全性配置为使用 Storage Based Authorization 时,会根据在文件系统中的权限来认证对元数据的操作。
所以基于存储的授权,除了要对Hive进行配置之外,还要使用HDFS命令为相应用户和用户组在表文件上设置相应的操作权限,以达到鉴权的目的。
开启基于存储的授权
首先在hive-site.xml中开启配置Metastore的安全特性。
代码语言:javascript复制<property>
<name>hive.metastore.pre.event.listeners</name>