Hive权限管理
最近遇到一个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权限问题
- 在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权限管理的更多相关文章
- HADOOP docker(七):hive权限管理
1. hive权限简介1.1 hive中的用户与组1.2 使用场景1.3 权限模型1.3 hive的超级用户2. 授权管理2.1 开启权限管理2.2 实现超级用户2.3 实现hiveserver2用户 ...
- Hive权限管理(十)
Hive权限管理 1.hive授权模型介绍 (1)Storage Based Authorization in the Metastore Server 基于存储的授权 - 可以对Metastore中 ...
- hive权限管理之实践
一.实践心得 主要参考这个连接,里面说得也挺详细的.http://www.aboutyun.com/thread-12549-1-1.html 总结如下: 1.若赋予用户某个表的权限,查用户在该表所属 ...
- 【Hive学习之七】Hive 运行方式&权限管理
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 ...
- hive(七)hive-运行方式、GUI接口、权限管理
1.Hive运行方式: 命令行方式cli:控制台模式 脚本运行方式(实际生产环境中用最多) JDBC方式:hiveserver2 web GUI接口 (hwi.hue等) 1.1Hive在CLI模 ...
- Hive权限之改进
不足 即使开启hive权限认证的情况下,不论什么用户仍然是超级用户.能够通过grant给不论什么人赋予不论什么权限,这样权限认证基本没有意义.因此必须在开启权限认证的同一时候.对运行grant/rev ...
- Hive 系列(二)权限管理
Hive 系列(二)权限管理 一.关于 Hive Beeline 问题 启动 hiveserver2 服务,启动 beeline -u jdbc:hive2:// 正常 ,启动 beeline -u ...
- HDFS、Yarn、Hive…MRS中使用Ranger实现权限管理全栈式实践
摘要:Ranger为组件提供基于PBAC的鉴权插件,供组件服务端运行,目前支持Ranger鉴权的组件有HDFS.Yarn.Hive.HBase.Kafka.Storm和Spark2x,后续会支持更多组 ...
- Spark SQL Thrift Server 配置 Kerberos身份认证和权限管理
转载请注明出处:http://www.cnblogs.com/xiaodf/ 之前的博客介绍了通过Kerberos + Sentry的方式实现了hive server2的身份认证和权限管理功能,本文主 ...
随机推荐
- 【SIKIA计划】_05_Unity5.3开发2D游戏笔记
一.界面基本操作 01.Project基本分类[Audios]音效[Material]材质[Prefabs]预制[Scenes]场景[Scripts]脚本[Sprites]精灵 02.Project丶 ...
- 高可用OpenStack(Queen版)集群-15.Glance&Cinder集成Ceph
参考文档: Install-guide:https://docs.openstack.org/install-guide/ OpenStack High Availability Guide:http ...
- 基于Linux-3.9.4内核增加简单的时间片轮转功能
简单的时间片轮转多道程序内核代码 原创作品转载请注明出处https://github.com/mengning/linuxkernel/ 作者:sa18225465 一.安装 Linux-3.9.4 ...
- 局域网arpspoof欺骗获取cookie/图片/密码
开启路由转发功能 查看IP转发功能是否打开 默认是不开起,0,我这里是修改后的,显示1. 修改转发功能,1为允许. 修改成功后再进行Arpspoof欺骗 如果开始劫持后,自己电脑无法联网了 ??? 检 ...
- Trait 是什么东西
PHP官方手册里面写的内容是 自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait. Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制.Trait 为了减少 ...
- rev命令详解
基础命令学习目录首页 rev命令将文件中的每行内容以字符为单位反序输出,即第一个字符最后输出,最后一个字符最先输出,依次类推. #cat a.txt wo shi mcw, nihao how do ...
- 【Alpha】特殊情况通知
由于我本人(SivilTaram)连续工作两周半,压力过大,今早出现心绞痛,故请求休假一天.今日不开Scrum Meeting,其余队员团队项目正常进行.
- ASP.NET MVC5 学习系列之初探MVC
一.由问题看本质 (一)什么是MVC? MVC是Model-View-Controller的简称.它是在1970年引入的软件设计模式.MVC 模式强迫关注分离 — 域模型和控制器逻辑与UI是松耦合关系 ...
- 第一次spring冲刺第7天
讨论成员:王俊凯.王逸辉.罗凯杰.马志磊 讨论问题:进行UI设计的详细讨论,虽然结果各有争议,但最终确定了较为简单的布局页面,并且开始收集精美页面的案例 冲刺尚未结束,同志还需努力,致力于最后.
- java异常处理及自定义异常的使用
1. 异常介绍 异常机制可以提高程序的健壮性和容错性. Throwable:Throwable是java语言所有错误或异常的超类. 有两个子类Error和Exception. 1.1 编译期异常 编译 ...