更新时间:2026-04-22 GMT+08:00
分享

配置Hive对接LakeFormation授权管理

LakeFormation数据湖权限支持配置数据库、数据表、函数等维度的权限。云服务管理员可针对不同的管理对象配置不同IAM用户组的权限,统一对数据湖资源进行管理。

MRS集群对接LakeFormation后,LakeFormation服务中的相关数据湖权限策略及角色信息会自动同步至MRS Ranger,对于MRS集群内的用户, 可通过关联至对应Ranger角色后获取对应资源的访问权限。

本示例描述了在LakeFormation数据湖中新创建了数据表后,如何为Hive组件配置资源授权、OBS路径授权的相关访问权限。

  • 用户可通过LakeFormation管理控制台对数据湖内的资源进行统一权限管理,对于IAM用户/用户组,也可以通过关联LakeFormation服务的细粒度权限策略进行特定权限场景的授权。当湖内数据资源较多时,建议通过LakeFormation管理控制台对数据湖内的资源进行统一权限管理。
  • 关于LakeFormation服务详细的权限配置说明及授权的权限类型,可参考配置LakeFormation元数据权限章节。
  • 对接LakeFormation后,对OBS路径的授权仅支持在LakeFormation上进行操作。

前提条件

  • 本章节内容仅适用于MRS 3.6.0及之后版本。
  • LakeFormation实例运行正常,数据库、数据表、数据权限等页面加载正常。
  • 集群已关闭Kerberos认证(普通模式),且运行正常,包含Guardian、Ranger、Hive等服务。
  • MRS已与LakeFormation实例对接成功,并重新下载安装了集群客户端,例如安装目录为“/opt/client”。
  • 已登录MRS集群的FusionInsight Manager界面添加人机用户“testuser”,加入hadoop、hive用户组,用户创建成功后初始化密码。

Hive对接LakeFormation后授权操作样例

  1. 关闭Kerberos认证的集群(普通模式)默认关闭Ranger鉴权,需要参考以下步骤开启Hive的Ranger鉴权。

    登录MRS集群Manager,选择“集群 > 服务 > Hive”,在右上角选择“更多 > 启用Ranger鉴权”根据界面提示进行启用。

  2. 登录LakeFormation管理控制台
  3. 选择LakeFormation实例后进入数据表页面,“数据库”选择“default”,然后单击“创建表”,编辑相关内容后单击“提交”。

    • “表名称”填写“lf_orctb1”。
    • “所属数据库”选择“default”。
    • “数据源格式”选择“Orc”。
    • 单击“添加表字段”:

      “名称”填“c1”,“类型”选择“int”;单击加号,新增一行,“名称”填“c2”,“类型”选择“int”。

      单击“确定”。

    • 单击“添加分区键”:

      “名称”填“p1”,“类型”选择“int”。

      单击“确定”。

  4. 登录MRS集群客户端所在节点,然后登录Hive Beeline命令行。

    cd /opt/client

    source bigdata_env

    beeline

  5. 执行如下SQL,读写LakeFormation上已存在的数据表。

    select * from default.lf_orctb1;

    insert into lf_orctb1 values (1,1,1);

    SQL执行失败,有Error提示用户缺少权限。

  6. 在LakeFormation管理控制台,选择“数据权限 > 角色”页面,单击“创建角色”,“角色名称”填写“testrole”,单击“确定”。
  7. 对角色进行授权/取消授权,支持在LakeFormation页面授权。

    进入“数据授权”页面,单击“授权”,编辑如下,将访问表所需的权限赋予“testrole”,单击“确定”。

    • 主体类型:选择“角色”。
    • 选择角色:下拉框选择刚创建的角色“testrole”
    • 授权类型:选择“资源”
    • Catalog:选择“hive”
    • 数据库:下拉框选择“default”,选中后再选择表。
    • 表:下拉框选择“lf_orctb1”。
    • 操作类型:勾选“SELECT”、“UPDATE”。

    MRS对接LakeFormation仅支持role授权,对user/group授权将默认转为对同名role的权限操作,role需要提前在LakeFormation页面创建;

  8. 如果创建的表为外表,类型为“EXTERNAL_TABLE”,需要执行该操作。否则请跳过该步骤。

    进入“数据授权”页面,单击“授权”,编辑如下,将外表的OBS路径的读写权限赋予“testrole”,单击“确定”。

    • 主体类型:选择“角色”。
    • 选择角色:下拉框选择刚创建的角色“testrole”
    • 授权类型:选择“路径”
    • 路径:选择为外表的存储路径。
    • 操作类型:勾选“READ”、“WRITE”。

  9. 检查MRS RangerAdmin上已同步角色和策略,并在对应Ranger角色上添加用户。

    1. 使用admin用户登录MRS集群的FusionInsight Manager页面,选择“集群 > 服务 > Ranger”。
    2. 在Ranger服务概览,单击“RangerAdmin”进入Ranger Web UI界面。
    3. 单击“Hive”进入Hive权限插件,查看添加的策略是否已同步至Ranger。
    4. 进入“Settings”页面,单击“Roles”,查看添加的角色是否已同步。
    5. 为用户绑定角色,支持Ranger页面绑定。

      Ranger页面绑定。

      单击“testrole”,在“Users”下“Select User”输入框中填入“testuser”,单击“Add Users”,然后单击“Save”保存退出。

  10. 回到Hive客户端上,再次执行读写数据表的SQL,成功读取表内容并插入数据。

    beeline

    select * from default.lf_orctb1;

    insert into lf_orctb1 values (1,1,1);

    如果MRS RangerAdmin存在已添加的Role,LakeFormation支持添加同名角色并将权限策略同步至RangerAdmin上并绑定该Role。

Hive权限与LakeFormation权限对应关系

  • HiveServer开启Ranger鉴权时,Hive权限与LakeFormation权限对应关系请参见下表。
    表1 Hive与LakeFormation权限对应关系(开启Ranger鉴权)

    Hive权限

    LakeFormation权限

    权限说明

    ALL

    ALL

    • 数据库:所有操作权限
    • 表:所有操作权限

    ALTER

    ALTER

    • 数据库:修改数据库
    • 表:修改表

    UPDATE

    UPDATE

    • 数据库:无此权限
    • 表:插入/覆盖表数据

    CREATE

    CREATE_TABLE

    • 数据库:在数据库下建表
    • 表:无此权限

    DROP

    DROP

    • 数据库:删除数据库
    • 表:删除表

    SELECT

    • 数据库:DESCRIBE、LIST_TABLE
    • 表:DESCRIBE、SELECT
    • 数据库:查看元数据信息、查看数据库下的表
    • 表:查看元数据信息、查询表数据

    INSERT

    INSERT

    • 数据库:无此权限
    • 表:插入表数据
  • HiveServer关闭Ranger鉴权时,Hive权限与LakeFormation权限对应关系请参见下表。

    该部分内容仅MRS 3.6.0.1及之后版本集群支持。

    表2 Hive与LakeFormation权限对应关系(关闭Ranger鉴权)

    Hive权限

    LakeFormation权限

    权限说明

    ALL

    ALL

    • 数据库:拥有库的SELECT、CREATE_TABLE权限
    • 表:拥有表的SELECT、INSERT、DELETE权限

    CREATE

    CREATE_TABLE

    • 数据库:在数据库下建表
    • 表:无此权限

    DELETE

    DELETE

    • 数据库:无此权限
    • 表:使用alter命令删除分区

    SELECT

    • 数据库:DESCRIBE、LIST_TABLE
    • 表:DESCRIBE、SELECT
    • 数据库:查看元数据信息、查看数据库下的表
    • 表:查看元数据信息、查询表数据

    INSERT

    INSERT

    • 数据库:无此权限
    • 表:插入表数据、使用alter命令增加分区

    ADMIN

    • 数据库:所有操作权限
    • 表:所有操作权限

    对接LakeFormation且关闭Ranger鉴权,将用户加到MRS默认的lake_formation_admin用户组后拥有ADMIN权限。

    OWNER(库表的创建者)

    OWNER(库表的创建者)

    • 数据库:所有操作权限
    • 表:所有操作权限

相关文档