文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用Hive/ Hive企业级能力增强/ 配置创建临时函数的用户不需要具有ADMIN权限
更新时间:2026-08-21 GMT+08:00
分享

配置创建临时函数的用户不需要具有ADMIN权限

操作场景

在Hive数据处理场景中,用户经常需要创建自定义函数(UDF)来扩展Hive的SQL功能,满足特定的计算需求。Hive中的函数分为永久函数和临时函数两种类型。永久函数创建后永久保存在Hive元数据中,所有用户都可以使用;临时函数仅在当前会话中有效,会话结束后自动删除。Hive开源社区版本要求创建临时函数的用户必须具备ADMIN权限,这在多租户环境中可能导致权限管理复杂,普通用户无法灵活创建临时函数满足业务需求。如何在保证安全的前提下,允许普通用户创建临时函数?MRS Hive提供“hive.security.temporary.function.need.admin”参数,可以控制创建临时函数是否需要ADMIN权限。当该参数设置为“false”时,普通用户也可以创建临时函数,提高使用灵活性。

本文介绍如何配置创建临时函数的用户权限。

约束与限制

  • 集群已启用Kerberos认证(安全模式)的ACL鉴权场景支持配置创建临时函数的用户是否需要ADMIN权限功能。
  • 在Hive已启用Ranger鉴权场景中,创建永久函数的用户需要具有“global”权限,创建临时函数的用户需要具有“Temporary UDF Admin”权限,详细操作请参见创建Hive用户自定义函数
  • 将参数设置为“false”时,存在一定的安全风险,请谨慎操作。

操作步骤

  1. 登录集群Manager页面,选择“集群 > 服务 > Hive > 配置 > 全部配置”。
  2. 在搜索框中输入参数名称,搜索“hive.security.temporary.function.need.admin”。

    • 选择“true”时,创建临时函数需要ADMIN权限,与开源社区版本保持一致。
    • 选择“false”时,创建临时函数不需要ADMIN权限,存在一定的安全风险,请谨慎操作。

  3. 单击“保存”保存配置。单击“实例”,勾选所有HiveServer实例,选择“更多 > 重启实例”,输入当前用户密码并单击“确定”重启所有HiveServer实例。
  4. 在Hive客户端创建并使用临时函数,具体操作请参见创建Hive用户自定义函数

验证操作:

配置完成后,可通过以下方式验证配置是否生效:

  1. 使用普通用户(非ADMIN权限)登录Hive客户端。
  2. 执行创建临时函数命令,例如:
    create temporary function my_udf as 'com.example.MyUDF';
  3. 如果参数设置为“false”,命令应执行成功;如果参数设置为“true”,命令应报权限不足错误。

常见问题

  • 设置参数为false后有什么安全风险

    任何用户都可以创建临时函数。临时函数在执行期间可以访问Hive的数据,如果用户创建了恶意函数,可能会在当前会话中造成数据泄露或破坏。

    建议仅在受信任的环境中使用该配置。

  • 修改参数后未生效

    修改参数后需要重启HiveServer实例才能生效。

    请确认已重启所有HiveServer实例。如果仍未生效,请检查参数值是否正确保存,以及当前使用的鉴权方式是否为ACL鉴权。

相关文档

相关文档