文档首页/ MapReduce服务 MRS/ 故障排除/ 使用Hive/ 集群中创建的新用户执行查询Hive操作时无权限
更新时间:2023-12-22 GMT+08:00

集群中创建的新用户执行查询Hive操作时无权限

问题现象

创建了新用户,但是执行查询的时候报无权限的错。

Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: Principal [name=hive, type=USER] does not have following privileges for operation QUERY [[SELECT] on Object [type=TABLE_OR_VIEW, name=default.t1]] (state=42000,code=40000)

原因分析

创建的新用户没有Hive组件的操作权限。

解决方案

MRS Manager界面操作:

  1. 登录MRS Manager页面,选择“系统配置 > 角色管理 > 添加角色”。
  2. 输入角色名称。
  3. 在“权限”区域选择Hive,出现Hive管理员权限和Hive表的读写权限。

  4. 选择“Hive Read Write Privileges”Hive表的读写权限,此时显示列Hive中的所有数据库。
  5. 勾选角色需要的权限并单击“确定”完成角色创建。
  6. 在MRS Manager页面,选择“系统配置 > 用户管理”。
  7. 在已创建的新用户对应的“操作”列单击“修改”。
  8. 单击“选择添加的用户组”,如需使用Hive服务,必须添加Hive组。
  9. 单击“选择并绑定角色”,勾选5中已创建的角色。
  10. 单击“确定”完成用户权限的配置。

FusionInsight Manager界面操作:

  1. 登录FusionInsight Manager。选择“系统 > 权限 > 角色”。
  2. 单击“添加角色”,输入“角色名称”和“描述”。
  3. 设置角色“配置资源权限”,选择“Hive读写权限”Hive表的读写权限,此时显示列Hive中的所有数据库。
  4. 勾选角色需要的权限并单击“确定”完成角色创建。
  5. 在FusionInsight Manager页面,选择“系统 > 权限 > 用户”。
  6. 在已创建的新用户对应的“操作”列单击“修改”。
  7. 单击“用户组”右侧的“添加”,如需使用Hive服务,必须添加Hive组。
  8. 单击“角色”右侧的“添加”,勾选4中已创建的角色。
  9. 单击“确定”完成用户权限的配置。