
# 配置具备表select权限的用户可查看表结构
#### 操作场景
在 Hive默认权限控制逻辑中，仅拥有表的SELECT权限的用户，只能查询表数据，却无法通过直接获取表结构信息（例如表定义、存储格式、分区信息等详细元数据）。在数据开发、分析调试等场景中可能带来不便，例如数据分析师需参考表结构设计编写查询语句时，需额外申请更高的权限。
本章节指导用户在集群已启用Kerberos认证（安全模式）的ACL鉴权场景中，通过添加自定义配置参数，实现其他用户被授予select权限后，支持通过**show create table**命令查看表结构。
#### 约束与限制
Hive启用Ranger鉴权时，授予用户Hive表select权限、HDFS路径的read、execute权限即可以执行**show create table**查看表结构，无需执行此章节操作配置"hive.allow.show.create.table.in.select.nogrant"参数。
#### 操作步骤
1. 以客户端安装用户，登录安装客户端的节点。 
   下载并安装集群客户端的具体操作，请参考[安装MRS集群客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0089.html)。
   
   
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报错用户权限不足   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002375927365.png "点击放大")
   
   
8. 登录FusionInsight Manager页面，选择"集群 \> 服务 \> Hive \> 配置 \> 全部配置"。
9. 选择"HiveServer（角色） \> 自定义"，对参数文件"hive-site.xml"添加自定义参数，设置"名称"为"hive.allow.show.create.table.in.select.nogrant"，"值"为"true"。
10. MRS 3.6.0-LTS之前版本，单击"保存"保存配置。单击"实例"，勾选所有Hive实例，选择"更多 \> 重启实例"，输入当前用户密码，单击"确定"重启所有Hive实例。 
    MRS 3.6.0-LTS及之后版本，单击"保存"保存配置，等待界面提示"操作成功"，单击"完成"，配置已修改。该参数动态生效，不需要重启Hive服务。
    
    
11. 是否需要在Spark/Spark2x客户端中启用此功能？ 
    - 是，重新下载并安装Spark/Spark2x客户端。
    
    - 否，操作结束。
    
    
    
    
12. 为查看表的用户绑定具有对应表select权限的角色，具体操作请参见[创建Hive用户并绑定角色](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_0949.html)。
13. 用户权限设置成功后，重新在Hive客户端执行以下命令查看[4]创建的表结构：
    
    ```
    show create table test;
    ```
    图2查看表结构   
    ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002341225266.png "点击放大")
    
    
 
