
# 用户A如何查看用户B创建的Hive表？
MRS 3.x之前版本：
1. 登录MRS Manager，选择"系统设置 \> 权限配置 \> 角色管理"。
2. 单击"添加角色"，输入"角色名称"和"描述"。
3. 在"权限"的表格中选择"Hive \> Hive Read Write Privileges"。
4. 在数据库列表中单击用户B创建的表所在的数据库名称，显示用户B创建的表。
5. 在用户B创建的表的"权限"列，勾选"Select"。
6. 单击"确定"，返回"角色"。
7. 选择"系统设置 \> 用户管理"，在用户A所在的行，单击"修改"，为用户A绑定新创建的角色，单击"确定"，等待5分钟左右即可访问到用户B创建的表。
MRS 3.x及之后版本：
1. 登录FusionInsight Manager，选择"集群 \> 服务 \> Hive \> 更多"，查看"启用Ranger鉴权"是否置灰。
   - 是，执行[9]。
   
   - 否，执行[2]-[8]。
    
2. 登录FusionInsight Manager，选择"系统 \> 权限 \> 角色"
3. 单击"添加角色"，输入"角色名称"和"描述"。
4. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> Hive \> Hive读写权限"。
5. 在数据库列表中单击用户B创建的表所在的数据库名称，显示用户B创建的表。
6. 在用户B创建的表的"权限"列，勾选"查询"。
7. 单击"确定"，返回"角色"
8. 单击"用户"，在用户A所在行，单击"修改"，为用户A绑定新创建的角色，单击"确定"，等待5分钟左右即可访问到用户B创建的表。
9. 添加Hive的Ranger访问权限策略：
   1. 使用Hive管理员用户登录FusionInsight Manager，选择"集群 \> 服务 \> Ranger"，单击"Ranger WebUI"右侧的链接进入Ranger管理界面。
   
   2. 在首页中单击"HADOOP SQL"区域的组件插件名称，例如"Hive"。
   
   3. 在"Access"页签单击"Add New Policy"，添加Hive权限控制策略。
   
   4. 在"Create Policy"页面填写如下内容：
      - Policy Name：策略名称，例如：table_test_hive。
      
      - database：填写或选择用户B创建的表所在的数据库，例如：default。
      
      - table：填写或选择用户B创建的表，例如：test。
      
      - column：填写并选择对应的列，例如：\*。
      
      - 在"Allow Conditions"区域，单击"Select User"下选择框选择用户A，单击"Add Permissions"，勾选"select"。
      
      - 单击"Add"。
       
    
10. 添加HDFS的Ranger访问权限策略：
    1. 使用**rangeradmin**用户登录FusionInsight Manager，选择"集群 \> 服务 \> Ranger"，单击"Ranger WebUI"右侧的链接进入Ranger管理界面。
    
    2. 在首页中单击"HDFS"区域的组件插件名称，例如"hacluster"。
    
    3. 单击"Add New Policy"，添加HDFS权限控制策略。
    
    4. 在"Create Policy"页面填写如下内容：
       - Policy Name：策略名称，例如：tablehdfs_test。
       
       - Resource Path：配置用户B创建的表所在的HDFS路径，例如：/user/hive/warehouse/*数据库名称* /*表名*。
       
       - 在"Allow Conditions"区域，单击"Select User"下选择框选择用户A，单击"Add Permissions"，勾选"Read"和"Execute"。
       
       - 单击"Add"。
        
     
11. 在策略列表可查看策略的基本信息。等待策略生效后，用户A即可查看用户B创建的表。
 
