文档首页/ MapReduce服务 MRS/ 组件操作指南(LTS版)/ 使用Hive/ Hive企业级能力增强/ 配置具备表select权限的用户可查看表结构
更新时间:2025-08-01 GMT+08:00

配置具备表select权限的用户可查看表结构

操作场景

在 Hive默认权限控制逻辑中,仅拥有表的SELECT权限的用户,只能查询表数据,却无法通过直接获取表结构信息(例如表定义、存储格式、分区信息等详细元数据)。在数据开发、分析调试等场景中可能带来不便,例如数据分析师需参考表结构设计编写查询语句时,需额外申请更高的权限。

本章节指导用户通过添加自定义配置参数,实现其他用户被授予select权限后,支持通过show create table命令查看表结构。

约束与限制

  • 该章节操作仅适用于开启了Kerberos认证的集群。
  • 该章节操作仅适用于Hive和HDFS未启用Ranger鉴权的场景。

操作步骤

  1. 以客户端安装用户,登录安装客户端的节点。

    下载并安装集群客户端的具体操作,请参考安装MRS集群客户端

  2. 执行以下命令切换到客户端安装目录,配置环境变量并认证用户。

    1. 切换到客户端安装目录:
      cd /opt/hadoopclient
    2. 配置环境变量:
      source bigdata_env
    3. 认证用户,用户需具有创建Hive表的权限,未开启Kerberos认证的集群请跳过此步骤:
      kinit 组件业务用户

      例如:

      kinit test

  3. 执行以下命令登录Hive客户端:

    beeline

  4. 执行以下命令创建表,例如“test”:

    create table test(name string);

  5. 执行以下命令向表中插入数据:

    insert into table test(name) values("A");

  6. 执行以下命令退出Hive客户端。

    !q

  7. 参考2~3使用其他用户,例如“test1”重新登录Hive客户端,执行以下命令查看4创建的表结构:

    show create table test;

    命令执行后,报错用户权限不足:

    图1 报错用户权限不足

  8. 登录FusionInsight Manager页面,选择“集群 > 服务 > Hive > 配置 > 全部配置”。
  9. 选择“HiveServer(角色) > 自定义”,对参数文件“hive-site.xml”添加自定义参数,设置“名称”为“hive.allow.show.create.table.in.select.nogrant”,“值”为“true”。
  10. 单击“保存”保存配置。单击“实例”,勾选所有Hive实例,选择“更多 > 重启实例”,输入当前用户密码,单击“确定”重启所有Hive实例。
  11. 是否需要在Spark/Spark2x客户端中启用此功能?

    • 是,重新下载并安装Spark/Spark2x客户端。
    • 否,操作结束。

  12. 为查看表的用户绑定具有对应表select权限的角色,具体操作请参见创建Hive用户并绑定角色
  13. 用户权限设置成功后,重新在Hive客户端执行以下命令查看4创建的表结构:

    show create table test;
    图2 查看表结构