文档首页/ MapReduce服务 MRS/ 故障排除/ 使用Ranger/ Hive启用Ranger鉴权后,在Hue页面能查看到没有权限的表和库
更新时间:2025-01-03 GMT+08:00
分享

Hive启用Ranger鉴权后,在Hue页面能查看到没有权限的表和库

问题现象

普通集群(未开启Kerberos认证)中,Hive启用Ranger鉴权后,集群用户在Hue页面能查看到没有被授权的数据表和数据库内容。

本章节仅适用于MRS 3.2.1及之后版本。

原因分析

Hive启用Ranger鉴权后,默认的Hive策略中有2个关于database的public组策略, 所有用户都属于public组,默认给public组配有default数据库的创表和所有其他数据库的create权限,因此默认所有的用户都有show databasesshow tables的权限,如果不想让某些用户有show databasesshow tables权限,可在Ranger WEBUI中删除该默认public组策略,并赋予需要查看的用户权限。

处理步骤

  1. 登录Ranger WebUI界面。
  2. 在“Service Manager”区域内,单击Hive组件名称,进入Hive组件安全访问策略列表页面。
  3. 分别单击“all - database”和“default database tables columns”策略所在行的按钮。
  4. 删除“public”组策略。

    图1 all - database策略
    图2 default database tables columns策略

  5. 在Hive组件安全访问策略列表页面,单击“Add New Policy”为相关用户或者用户组添加资源访问策略,具体请参考配置组件权限策略

    Hive支持只显示有权限的库和表。Hue只支持显示有权限的库,授权库后即展示该库中所有的表。

  1. 登录Manager页面,选择“集群 > 服务 > Hive > 配置 > 全部配置 > HiveServer(角色) > 自定义”,在“hive.server.customized.configs”中添加如下两个参数,保存配置,并滚动重启服务。

    hive-ext.skip.ranger.showtables.auth=false
    hive.show.all.table=false

相关文档