一、安装hive插件

1、解压安装

#  tar zxvf ranger-2.0.0-SNAPSHOT-hive-plugin.tar.gz -C /data1/hadoop/

2、修改install.properties

POLICY_MGR_URL=http://192.168.4.50:6080

REPOSITORY_NAME=hivedev

COMPONENT_INSTALL_DIR_NAME=/data1/hadoop/hive   #hive安装目录

XAAUDIT.SOLR.ENABLE=true

XAAUDIT.SOLR.URL=http://192.168.4.50:6083/solr/ranger_audits

CUSTOM_USER=hduser

CUSTOM_GROUP=hduser

3、启动hive插件

# sudo ./enable-hive-plugin.sh

启动hive插件以后,默认生成hiveserver2-site.xml文件,或者在已经存在的该文件下添加如下信息:

hive.security.authorization.enabled

true

hive.security.authorization.manager

org.apache.ranger.authorization.hive.authorizer.RangerHiveAuthorizerFactory

hive.security.authenticator.manager

org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator

hive.conf.restricted.list

hive.security.authorization.enabled,hive.security.authorization.manager,hive.security.authenticator.manager

4、前台界面配置policy

点击加号添加服务

如果测试连接ok,说明配置成功。

注:我在配置的时候,这里测试连接失败,集群的hiveserver2服务启动,端口也正常监听,在集群内部使用beeline方式连接到集群进行操作时,提示如下错误:

Caused by: java.lang.NoSuchFieldError: REPLLOAD

最后发现是由于hive的版本与ranger hive里面的包版本不一致导致,我使用的hive版本是hive2.x,而ranger2.x对于的hive版本是3.x,所以,在使用的时候要注意版本的问题。

5、配置策略

当创建好服务以后,ranger默认就创建了一些policy,如下:

如果想要添加策略,可以添加右上角的add

6、测试

注意:ranger权限对应hive客户端是没有任何作用的,如果想要对hive客户端做权限认证,则可以使用hive基于sql的安全认证,ranger只是对hiveserver2方式进行权限控制。

(1) 首先使用beeline -u jdbc:hive2://localhost:10000 -n hduser 连接到hive

创建数据库(shanghai),该条语句可以正常执行。

在shanghai库里面创建表(test),则会创建失败,如下:

0: jdbc:hive2://192.168.0.230:10000> create table test(a string);

Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [hduser] does not have [CREATE] privilege on [shanghai/test] (state=42000,code=40000)

提示没有权限

(2) 添加策略,在上图policy ID为10的这条策略里面修改如下:

上述的hduser的新添加的。添加完保存,格一小会,在再beeline模式下执行创建表的测试,看是否成功,当然,这里给了该用户所有的权限,所以,该用户还可以进行insert等操作。

(3) 测试其他用户,比如当前的操作系统上面有一个yjt用户,我想该用户对test表有查询权限,先在beeline模式下测试改用户是否有select权限,如下:

[hduser@yjt ~]$ beeline -u jdbc:hive2://192.168.0.230:10000 -n yjt   #指定登录用户为yjt

0: jdbc:hive2://192.168.0.230:10000> select * from shanghai.test;

Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [yjt] does not have [SELECT] privilege on [shanghai/test/*] (state=42000,code=40000)

可以发现,yjt这个用户对于shanghai数据库下的test这个表是没有select权限的,添加权限:

还是在上述的策略10里面添加,如下:

上述保存以后,如下:

策略添加完以后,需要等待策略的下发,权限控制才生效。

注意:策略修改完以后,不用重新启动beeline。

说明策略配置成功,那么上述配置了yjt这个用户的select权限,是否该用户真的只有select权限呢?继续测试改用户是否真的只有select权限,所以这里使用该用户insert一条数据到test表,如下:

额,这还没到权限认证就开始报错了,上述的错误可以看到该用户对应hdfs的目录或者文件没有写权限,从这里也可以看到,还可以使用hdfs的权限认证限制hive用户。修改上述目录或者文件的权限为777(主要为了测试用户是否被hive ranger控制,所以这里设置为777,以排除其他干扰。)

[hduser@yjt conf]$ hadoop fs -setfacl -m user:yjt:rwx hdfs://yjt:9000/hive/warehouse/shanghai.db/test/

上述添加一条ACL。允许yjt所有操作

0: jdbc:hive2://192.168.0.230:10000> insert into table test values("test insert");

Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [yjt] does not have [UPDATE] privilege on [shanghai/test] (state=42000,code=40000)

这里发现用户没有UPDATE权限,说明配置成功(在ranger里面,其实没有insert权限,只有update权限),接下来,在policy里面添加update权限,看是否可以成功的insert数据。

借鉴:

hive插件 ranger_hive 整合ranger相关推荐

  1. HBase 与Hive数据交互整合过程详解

    Hive和Hbase整合理论 1.为什么hive要和hbase整合 2.整合的优缺点 优点: (1).Hive方便地提供了Hive QL的接口来简化MapReduce的使用, 而HBase提供了低延迟 ...

  2. 【伊利丹】Hadoop-2.5.0-CDH5.2.0/Hive与Hbase整合实验

    Hadoop Hive与Hbase整合 用hbase做数据库,但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面 的 hql查询 ...

  3. hive安装及整合hbase

    hive安装及整合hbase (1). 上传hive安装包并解压 tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /export/server/ (2). 配置hi ...

  4. 数据湖(十):Hive与Iceberg整合

    文章目录 Hive与Iceberg整合 一.开启Hive支持Iceberg 1.下载iceberg-hive-runtime.jar 2.配置hive-site.xml

  5. java hive和hbase整合,Hive入门3–Hive与HBase的整合

    开场白: Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类 (Hive Storage Handle ...

  6. DGI Hive Prohibition Policy(Ranger)

    介绍 Apache Ranger为Enterprise Hadoop生态系统提供集中安全性,包括细粒度访问控制和集中审计.在ranger-0.5版本中,Apache Ranger引入了堆栈模型,使新组 ...

  7. hive插件 ranger_Apache Ranger及Hive权限控制

    一.Ranger概述 1.Ranger简介 Apache Ranger提供一个集中式安全管理框架, 并解决授权和审计.它可以对Hadoop生态的组件如HDFS.Yarn.Hive.Hbase等进行细粒 ...

  8. hive插件 ranger_Ranger Hive-HDFS ACL同步

    Ranger Hive-HDFS ACL同步概述 Ranger资源映射服务器(Resource Mapping Server:RMS)可以将访问策略从Hive自动转换为HDFS. 关于Hive-HDF ...

  9. Ambari2.7.0 + HDP3.1.4.0安装,hdfs数据备份和恢复,hive数据备份和恢复,hbase数据备份和恢复,常见错误总结,Ambari卸载,hadoop-ha,hive和ES整合

    目录 1 Ambari + HDP离线安装 1.1 介绍 1.1.1 Ambari介绍 1.1.2 HDP 1.1.3 HDP-UTILS 1.2 登录ambari官网地址 1.3 Ambari和HD ...

最新文章

  1. Linux文本比较命令:diff
  2. hbase redis mongoddb neo4j 非关系型数据库简介
  3. SharePoint 2007 Web Content Management 性能优化系列 前言
  4. 一天学会 Maven+Springboot+RabbitMQ 微服务快速开发教程
  5. 如何跑通第一个 SQL 作业
  6. python编程内置函数使用方法_Python内置函数 next的具体使用方法
  7. Knockoutjs官网翻译系列(一)
  8. 实现两(三)列等高布局的方法
  9. 【Elasticsearch】es一个奇怪的问题 is_write_index fasle的时候还在写入 索引滚动无效
  10. 为你的 Swift Packages 命名
  11. VB6 TCP通讯服务端、客户端源码
  12. 一个字形容大数据_中国大学校训大数据:最短的2个字,最长的28个字,10大高频汉字...
  13. 支付宝集福攻略,作为程序员的你集福了么?
  14. 手把手转行|小步试错,逐步迭代
  15. “前进!前进!不择手段地前进!”——托马斯·维德
  16. 8月8日科技联播:库比蒂诺想修超级高铁,市长点名要苹果掏钱
  17. 社群运营:从100个社群中选出有特色的8个分享给你
  18. matlab中关于unit8和double数值类型之间的存储数据和转换问题
  19. win10 office activation tools
  20. python解决八数码问题_A*算法解决15数码问题_Python实现

热门文章

  1. springboot、quartz定时任务未触发
  2. 如何用统计学指导自己的生活?
  3. vulnhub之hacksudo FOG
  4. 2款2.4G蓝牙PCB天线尺寸(来自TI)
  5. ZEMAX光学系统导入和CAD导出
  6. ipconfig、ping命令、其他常用网络命令
  7. 中国公用计算机互联网的国际出口带宽量为,我国互联网络国际出口带宽已达18599M...
  8. net mysql反斜杠怎么入库_MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义
  9. MFC ClientToScreen 和 ScreenToClient
  10. WebRTC实现一个网页在线录制视频