最近遇到一个hive权限的问题,先简单记录一下,目前自己的理解不一定对,后续根据自己的理解程度更新


一、hive用户的概念

  hive本身没有创建用户的命令,hive的用户就是Linux用户,若当前是用mr用户输入hive,进入hive的shell,则当前hive的用户为mr。

  hive本身不提供用户和用户的管理,只做权限控制。

  所以在实际的生产中,容易造成创表和使用表的用户不统一的情况,针对该情况可以使用beeline的方式连接hive,简洁的命令如下,具体的使用方式可以百度查找。

 beeline -u jdbc:hive2//mysql_IP:port -n username

二、hive数据存储方式

  这里讨论基于MySQL的remote方式,这种方式可以支持多用户的并发模式。

  hiveserver元数据信息是存在MySQL中的,存在MySQL中的元数据信息包括:表的位置、创建时间、数据库相关、表相关关系以及表的一些授权信息等,没有具体的内容;物理表是存在HDFS上的。

  因为数据是存在HDFS上的,创表或导入数据时候,当前用户要对存放数据的HDFS目录要有权限。若没有相关权限,会导致很多操作都会报错。

三、hive权限问题

  1.   在hive-site.xml文件中,开启权限认证,参数如下:
 hive.security.authorization.enabled  //默认为false
hive.security.authorization.createtable.owner.grants

    2.  在用户没有权限的做某项操作的时候,可以通过以下语句赋给用户ALL的权限或者对应的权限。

 GRATN ALL TO USER username;

  但是这样做,有点力度不够细,比如你想给某个用户赋select、create的权限,别的权限不给,这样上述语句就得执行两遍,当用户多的时候,这种情况尤为繁琐。

  在hive中role(角色)这一概念,可以较好的解决上述问题。可以将不同的权限根据需要赋给对应的role,然后将这个role赋给用户,再将相应的权限赋给这个role,这样用户就可以根据role的权限执行相应操作,这样在权限管理上更加灵活了。

   3.  实际上,所有的Linux系统用户登录hive后,都可以执行Grant/revoke操作,这样假如一个用户没有某一权限了,很简单只需要执行一次grant就行,可以认为hive用户自己管理自己的权限。

  这个可以在hive-site.xml文件中配置hive.semantic.analyzer.hook,然后实现自己的权限控制类,即可。控制类的实现可上网百度。

  配置好上面的配置项后,相当于是设置超级管理员权限,具体的权限根据自己的权限控制类。此时若要新增一个超级管理员用户,可以在hive-site.xml文件的hive.users.in.super.administrator中设置。


update:2018-12-25

  

4.  hive用户权限管理的简单流程:

    i)创建超级管理员;

    ii)新建用户,赋予hive目录的权限;

    iii)超级管理员进入hive,给指定用户(组)赋操作权限;

    iv)使用新建用户连接hive;

4、hive有两种 授权机制:

总结来说为:1、基于底层HDFS的权限;2、基于标准SQL的grant等命令。具体的在实践中的注意点已在上面提及。

Ref:

https://www.cnblogs.com/yejibigdata/p/6394719.html

Hive权限管理的更多相关文章

  1. HADOOP docker(七):hive权限管理

    1. hive权限简介1.1 hive中的用户与组1.2 使用场景1.3 权限模型1.3 hive的超级用户2. 授权管理2.1 开启权限管理2.2 实现超级用户2.3 实现hiveserver2用户 ...

  2. Hive权限管理(十)

    Hive权限管理 1.hive授权模型介绍 (1)Storage Based Authorization in the Metastore Server 基于存储的授权 - 可以对Metastore中 ...

  3. hive权限管理之实践

    一.实践心得 主要参考这个连接,里面说得也挺详细的.http://www.aboutyun.com/thread-12549-1-1.html 总结如下: 1.若赋予用户某个表的权限,查用户在该表所属 ...

  4. 【Hive学习之七】Hive 运行方式&权限管理

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 ...

  5. hive(七)hive-运行方式、GUI接口、权限管理

    1.Hive运行方式: 命令行方式cli:控制台模式 脚本运行方式(实际生产环境中用最多) JDBC方式:hiveserver2 web GUI接口 (hwi.hue等)   1.1Hive在CLI模 ...

  6. Hive权限之改进

    不足 即使开启hive权限认证的情况下,不论什么用户仍然是超级用户.能够通过grant给不论什么人赋予不论什么权限,这样权限认证基本没有意义.因此必须在开启权限认证的同一时候.对运行grant/rev ...

  7. Hive 系列(二)权限管理

    Hive 系列(二)权限管理 一.关于 Hive Beeline 问题 启动 hiveserver2 服务,启动 beeline -u jdbc:hive2:// 正常 ,启动 beeline -u ...

  8. HDFS、Yarn、Hive…MRS中使用Ranger实现权限管理全栈式实践

    摘要:Ranger为组件提供基于PBAC的鉴权插件,供组件服务端运行,目前支持Ranger鉴权的组件有HDFS.Yarn.Hive.HBase.Kafka.Storm和Spark2x,后续会支持更多组 ...

  9. Spark SQL Thrift Server 配置 Kerberos身份认证和权限管理

    转载请注明出处:http://www.cnblogs.com/xiaodf/ 之前的博客介绍了通过Kerberos + Sentry的方式实现了hive server2的身份认证和权限管理功能,本文主 ...

随机推荐

  1. [Unity Shader] 坐标变换与法线变换及Unity5新增加的内置函数

    学习第六章Unity内置函数时,由于之前使用mul矩阵乘法时的顺序与书中不一致,导致使用内置函数时出现光照效果不一样,因此引出以下两个问题: 1 什么时候使用3x3矩阵,什么时候使用4x4矩阵? 2 ...

  2. Spring Boot 学习目录

    之前一直做.net 的开发,后来发现C# 在生态方面和Java还是差了好多,而且目前有很多.net 方面的技术也是借鉴了Java相关的开发,所以最近准备学习了解一下java 相关的web开发,从中学习 ...

  3. 用 Delphi 7 实现基于 FFMS2 的视频转 GIF 工具 [原创]

    儿子经常要把自拍的视频(ts格式)转成表情包,下载了几个工具都不大好用,更多的还要收费.那就想自己写一个吧,没想到这一下断断续续地,居然 3 个月过去了.现在总算弄出个作品来了,结个贴吧.唉,天资愚钝 ...

  4. 【Ansible】ansible循环

    Ansible 循环 一.简单介绍 在ansible2.5之前,大多数人使”with_XXX”类型的关键字来操作循环,但是从2.6版本开始,官方推荐是”loop”关键字代替” with_XXX”. 1 ...

  5. HDFS handler

    http://docs.oracle.com/goldengate/bd1221/gg-bd/GADBD/GUID-85A82B2E-CD51-463A-8674-3D686C3C0EC0.htm#G ...

  6. Django_QueryDict

    介绍 class QueryDict(MultiValueDict): """ A specialized MultiValueDict which represents ...

  7. kerkee demo编译连接过程中遇到的问题及解决方法(iOS)

    https://github.com/kercer/kerkee_ios 1.刚打开这个demo的时候是下图这个样子的,我们很自然的可以想到将kerkee.xcoderproj添加到项目里面 2.将k ...

  8. +new Date()的用法

    var s=+newDate();   var s=+newDate(); 解释如下:=+是不存在的; +new Date()是一个东西; +相当于.valueOf(); 看到回复补充一下.getTi ...

  9. React环境配置(第一个React项目)

    使用Webpack构建React项目 1. 使用NPM配置React环境 NPM及React安装自行百度 首先创建一个文件夹,the_first_React 进入到创建好的目录,npm init,然后 ...

  10. WPF四则运算《《《《《策略模式

    设计思路:           因为之前没有用过WPF,听说和window窗体语法类似,就想着仿照之前的Window窗体做的,首先用三个textbox存储数据,添加一个comboBox,利用索引选择运 ...