当前位置: 首页 > news >正文

【hive-解决】HiveAccessControlException Permission denied: CREATEFUNCTION

文章目录

  • 一.任务描述
  • 二. 解决

一.任务描述

 Error while compiling statement: FAILED:  HiveAccessControlException Permission denied: Principal [name=root, type=USER] does not have following privileges for operation CREATEFUNCTION [ADMIN PRIVILEGE on INPUT, ADMIN PRIVILEGE on OUTPUT]

问题表象:使用root用户通过hive创建udf函数时报没有admin的权限。

相关配置:

设置成false则,yarn作业获取到的hiveserver2用户都为hive用户。
设置成true则为实际的用户名<property><name>hive.server2.enable.doAs</name><value>false</value></property><property><name>hive.users.in.admin.role</name>               <value>taiyi</value></property>

看到设置了hive.users.in.admin.role=taiyi,但执行时却报没有admin权限。。。那admin权限如何正确的设置和使用呢?

 

二. 解决

hive官网描述了关于SQL Standard Based Hive Authorization,即hive对执行sql时的鉴权。

https://cwiki.apache.org/confluence/display/Hive/SQL+Standard+Based+Hive+Authorization#SQLStandardBasedHiveAuthorization-Troubleshooting

The SQL standards based authorization option (introduced in Hive 0.13) provides a third option for authorization in Hive. This is recommended because it allows Hive to be fully SQL compliant in its authorization model without causing backward compatibility issues for current users. As users migrate to this more secure model, the current default authorization could be deprecated.

hive对标准sql鉴权提供了新的鉴权选择。且这种方式不会出现向后兼容的问题。当用户设置了此安全模型,默认的鉴权将会被弃用。

看下官网如何配置的admin权限

For Hive 0.14 and Newer
在这里插入图片描述
这里我们只关注前两项,其中第二项:hive.users.in.admin.role 描述了,此值生效之后,属于admin角色的用户在获得admin角色的权限之前需要执行“set role”命令,因为默认情况下该角色不在当前角色中。

 
这里大概知道了是因为没有执行:set role admin; 导致admin角色用户没有生效。

进入hive终端之后,执行set role admin; ,再执行udf的创建:

set role admin;create temporary function ip_get as 'xxx.xxx.IpRegionUdf'
using
jar 'hdfs://namenode:9000/home/user/etl-hive-functions-1.0.jar';

 
官网的Troubleshooting也描述了此问题
在这里插入图片描述

至此解决;
https://cwiki.apache.org/confluence/display/Hive/SQL+Standard+Based+Hive+Authorization

http://www.lryc.cn/news/236596.html

相关文章:

  • 内网穿透的应用-通过内网穿透快速搭建公网可访问的Spring Boot接口调试环境
  • 解决 uniapp 开发微信小程序 不能使用本地图片作为背景图 问题
  • 常用中间件封装思路粗记
  • 探索SPI:深入理解原理、源码与应用场景
  • Web3名词解释
  • Vatee万腾外汇市场新力量:vatee科技决策力
  • 【HarmonyOS开发】配置开发工具DevEco Studio
  • 探索亚马逊大语言模型:开启人工智能时代的语言创作新篇章
  • zabbix-proxy分布式监控
  • springboot生成PDF,并且添加水印
  • Tensorflow2.0:CNN、ResNet实现MNIST分类识别
  • 本地jar导入maven
  • 数据结构与算法【堆】的Java实现
  • 同创永益联合红帽打造一站式数字韧性解决方案
  • c++ call_once 使用详解
  • 【rosrun diagnostic_analysis】报错No module named rospkg | ubuntu 20.04
  • 高防CDN有什么作用?
  • 盛元广通开放实训室管理系统2.0
  • 3D建模基础教程:编辑多边形功能命令快捷方式
  • SaleSmartly新增AI意图识别触发器!让客户享受更精准的自动化服务
  • 计算机毕业设计选题推荐-个人博客微信小程序/安卓APP-项目实战
  • 一篇详解,Postman设置token依赖步骤
  • 音频录制实现 绘制频谱
  • nginx代理本地服务请求,避免跨域;前端图片压缩并上传
  • Vue3-readonly(深只读) 与 shallowReadonly(浅只读)
  • 中小企业怎么实现数字化转型?有什么实用的工单管理系统?
  • vue3.x中父组件添加自定义参数后,如何获取子组件$emit传递过来的参数
  • 【Machine Learning in R - Next Generation • mlr3】
  • CorelDraw2024(CDR)- 矢量图制作软件介绍
  • RT-DETR优化改进:轻量级Backbone改进 | VanillaNet极简神经网络模型 | 华为诺亚2023