全部產品
Search
文件中心

E-MapReduce:DLF-Auth

更新時間:Jun 03, 2026

DLF-Auth組件是資料湖構建DLF(Data Lake Formation)產品提供的,通過該組件可以開啟資料湖構建DLF的資料許可權功能,可以對資料庫、資料表、資料列、函數進行細粒度許可權控制,實現資料湖上統一的資料許可權管理。本文為您介紹如何開啟DLF-Auth許可權。

背景資訊

資料湖構建DLF是一款全託管的快速協助使用者構建雲上資料湖的服務,提供了雲上資料湖統一的許可權管理和中繼資料管理,詳細資料請參見資料湖構建產品簡介DLF-EMR

前提條件

已建立E-MapReduce叢集,並選擇了OpenLDAP服務,詳情請參見建立叢集

說明

在建立叢集的軟體配置頁面,元数据使用預設的DLF统一元数据

使用限制

  • 資料湖構建DLF許可權僅支援通過RAM使用者進行許可權管理,因此需要在EMR控制台通過使用者管理功能添加使用者。

  • 資料湖構建DLF的資料許可權管理功能支援地區請參見已開通的地區和訪問網域名稱

  • DLF-Auth啟用Hive或Spark後,Ranger將無法點擊啟用或禁用Hive或Spark;Ranger啟用Hive或Spark後,DLF-Auth將無法點擊啟用或禁用Hive或Spark。

  • DLF-Auth支援的EMR版本及計算引擎列表。

    EMR 主要版本

    Hive

    Spark

    Presto

    Impala

    EMR 3.x版本

    EMR-3.39.0及以前版本

    不支援

    不支援

    不支援

    不支援

    EMR-3.40.0

    支援

    支援

    支援

    不支援

    EMR-3.41.0至EMR-3.43.1

    支援

    支援

    不支援

    不支援

    EMR-3.44.0及以上版本

    支援

    支援

    支援

    支援

    EMR 5.x版本

    EMR-5.5.0及以前版本

    不支援

    不支援

    不支援

    不支援

    EMR-5.6.0

    支援

    支援

    支援

    不支援

    EMR-5.7.0至EMR-5.9.1

    支援

    支援

    不支援

    不支援

    EMR-5.10.0 及以上版本

    支援

    支援

    支援

    支援

操作流程

通過本文操作,您可以開啟DLF-Auth,實現資料湖上全託管的統一的許可權管理。

步驟一:開啟Hive許可權控制

  1. 進入DLF-Auth頁面。

    1. 登入EMR on ECS

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. EMR on ECS頁面,單擊目的地組群操作列的集群服务

    4. 集群服务頁面,單擊DLF-Auth服務地區的状态

  2. 開啟Hive許可權控制。

    1. 在DLF-Auth服務頁面,開啟enableHive開關。

    2. 在彈出的對話方塊中,單擊确定

  3. 重啟HiveServer。

    1. 集群服务頁面,選擇Hive服務。

    2. 在Hive服務頁面,單擊HiveServer操作列的重启

    3. 在彈出的對話方塊中,輸入执行原因,單擊确定

    4. 确认對話中,單擊确定

步驟二:添加RAM使用者

您可以通過使用者管理功能添加使用者,詳細操作如下。

  1. 進入使用者管理頁面。

    1. 登入EMR on ECS

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. 在EMR on ECS頁面,單擊目的地組群操作列的集群服务

    4. 單擊上方的用户管理頁簽。

  2. 用户管理頁面,單擊添加用户

  3. 添加用户對話方塊中,在用户名下拉式清單中,選擇已有的RAM使用者作為EMR使用者的名稱,輸入密码确认密码

  4. 單擊确定

步驟三:驗證許可權

重要

如果RAM使用者已擁有AliyunDLFDssFullAccess許可權,或者RAM使用者被授予了AdministratorAccess,則該RAM使用者具備了所有DLF細粒度資源的存取權限,無需進行資料授權操作。

  1. 授權前驗證目前使用者許可權。

    1. 使用SSH方式登入到叢集,詳情請參見登入叢集

    2. 執行以下命令訪問HiveServer2。

      beeline -u jdbc:hive2://master-1-1:10000 -n <user> -p <password>
      說明

      <user><password>步驟二:添加RAM使用者中您設定的使用者名稱和密碼。

    3. 查看已有資料表資訊。

      例如,執行以下命令,查看test表資訊。testdb.test請根據您實際資訊修改。

      select * from testdb.test;

      因為目前使用者沒有許可權,會報沒有許可權而查詢失敗的錯。

      0: jdbc:hive2://xxx:10000> select * from testdb.test;
      22/07/07 19:03:32 [main]: WARN conf.HiveConf: HiveConf of name hive.metastore.delta.compatible.mode.enabled does not e
      xist
      Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: user [dlf-test] does not
       have [SELECT] privilege on [database=testdb/table=test/*]. Permission denied: DLF checkPermission failed. message=[Ac
      tion: CHECK_PERMISSIONS ErrorCode: NoPermission Message: Authorization Failed [4019], You have NO privilege 'Select' o
      n {acs:dlf:cn-hangzhou:xxx:metastore/catalogs/xxx/databases/testdb/tables/test}. Deny as def
      ault for Resource.  Context ID:dd198392-9b30-4899-9b32-61e1a993bd55.    --->Tips: Principal:acs:ram::xxx:
      user/dlf-test Not pass by dlf permission check. RequestId: C4EC27BE-31ED-5A4B-AD40-2C8EF60359C0] (state=42000,code=400
      00)
  2. 為RAM使用者添加許可權。

    1. 登入資料湖構建控制台

    2. 在左側導覽列中,選擇数据权限 > 数据授权

    3. 数据授权頁面,單擊新增授权

    4. 新增授权頁面,配置以下參數。

      參數

      描述

      授权主体

      主体类型

      預設RAM使用者。

      主体选择

      主体选择下拉式清單中,選擇您在步驟二:添加RAM使用者中添加的使用者。

      授权资源

      授权方式

      預設資源授權。

      资源类型

      根據您實際情況選擇。

      本文樣本為中繼資料表。

      权限配置

      数据权限

      本文樣本為Select

      授权权限

    5. 單擊确定

  3. 授權後驗證目前使用者許可權。

    參見步驟1重新查看資料表的資訊,因為已經授權,所以可以查詢到相關資料表的資訊。

(可選)步驟四:開啟Hive LDAP認證

如果開啟了DLF-Auth許可權,建議您開啟Hive LDAP認證,以便於串連Hive的使用者都可以通過LDAP認證後執行相關指令碼。

  1. 進入叢集服務頁面。

    1. 登入EMR on ECS

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. EMR on ECS頁面,單擊目的地組群操作列的集群服务

  2. 開啟LDAP認證。

    1. 集群服务頁面,單擊Hive服務地區的状态

    2. 開啟enableLDAP開關。

      • EMR-5.11.1及之後版本,EMR-3.45.1及之後版本

        1. 服务概述地區,開啟enableLDAP開關。

        2. 在彈出的對話方塊中,單擊确定

      • EMR-5.11.0及之前版本,EMR-3.45.0及之前版本

        1. 组件列表地區,選擇HiveServer操作列的more > enableLDAP

        2. 在彈出的對話方塊中,輸入执行原因,單擊确定

        3. 确认對話方塊中,單擊确定

    3. 重啟HiveServer。

      1. 组件列表地區,單擊HiveServer操作列的重启

      2. 在彈出的對話方塊中,輸入执行原因,單擊确定

      3. 确认對話方塊中,單擊确定

常見問題

Q:使用多個Catalog時,如何為DLF-AUTH單獨設定Catalog ID?

A:您可以參照以下步驟為DLF-AUTH單獨設定Catalog ID。

說明

因為該版本不支援啟動Presto,所以不需要配置Presto計算引擎。

  1. 進入DLF-Auth頁面。

    1. 登入EMR on ECS

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. 在EMR on ECS頁面,單擊目的地組群操作列的叢集服務。

    4. 集群服务頁面,單擊DLF-AUTH服務地區的配置

  2. 配置Hive計算引擎。

    您可以根據需要配置Hive計算引擎。

    1. 新增Hive計算引擎配置項。

      1. 單擊dlf-hive-security.xml頁簽。

      2. 單擊上方的新增配置项

      3. 設定Key為dlf.catalog.id,Value為您當前叢集關聯的DLF Catalog ID。

        您可以在Hive服務配置頁簽,查看dlf.catalog.id的參數值,即為DLF Catalog ID。

      4. 單擊确定

      5. 在彈出的對話方塊中,輸入执行原因,單擊保存

    2. 重啟HiveServer服務。

      1. 切換到Hive服務的状态頁面。

      2. 组件列表地區,選擇HiveServer操作列的重启

      3. 在彈出的對話中,輸入执行原因,單擊确定

      4. 确认對話中,單擊确定

  3. 配置Spark計算引擎。

    您可以根據需要配置Spark計算引擎。

    1. 新增Spark計算引擎配置項。

      1. 單擊dlf-spark-security.xml頁簽。

      2. 單擊上方的新增配置项

      3. 設定Key為dlf.catalog.id,Value為您當前叢集關聯的DLF Catalog ID。

        您可以在Spark服務配置頁簽,查看dlf.catalog.id的參數值,即為DLF Catalog ID。

      4. 單擊确定

      5. 在彈出的對話方塊中,輸入执行原因,單擊保存

    2. 重啟Spark Thrift Server服務。

      1. 切換到Spark服務的状态頁面。

      2. 组件列表地區,選擇Spark Thrift Server操作列的重启

      3. 在彈出的對話中,輸入执行原因,單擊确定

      4. 确认對話中,單擊确定