Todos os produtos
Search
Central de documentação

Data Lake Formation:Use DLF e EMR para gerenciar permissões

Última atualização: Jun 28, 2026

Este tutorial demonstra como usar o Data Lake Formation (DLF) e o E-MapReduce (EMR) para aplicar controle de acesso granular baseado em funções em um data lake com múltiplos motores. O processo abrange permissões nos níveis de banco de dados, tabela e coluna.

Conceitos principais

  • DLF Catalog: Entidade de nível superior na arquitetura de metadados do DLF. Um catalog agrupa bancos de dados e tabelas, funcionando como limite de permissão. Para mais informações, consulte Data Catalog.

  • DLF data permissions: Sistema nativo de controle de acesso do DLF que oferece controle granular em quatro dimensões: bancos de dados, tabelas, colunas e funções. Para mais informações, consulte Overview.

  • EMR: Alibaba Cloud E-MapReduce, uma plataforma gerenciada de big data. Para mais informações, consulte What is EMR on ECS?.

Cenário

Uma empresa opera um cluster EMR com vários motores de consulta (Hive, Spark, Presto e Impala) e precisa de um sistema de permissões unificado. Esse sistema deve aplicar regras de acesso consistentes para todos os usuários em todos os motores.

A tabela a seguir apresenta as quatro funções deste cenário e as permissões necessárias para cada uma:

Função

Usuário RAM

Escopo

Permissões

Superadministrador

dlf_data_admin

Todos os bancos de dados e tabelas

Acesso total; pode conceder permissões a qualquer usuário

Administrador de dados do Negócio A

dlf_dba_admin

db_a e todas as suas tabelas

Acesso total; pode conceder permissões de db_a a outros usuários

Desenvolvedor de dados do Negócio A

dlf_dba_dev

db_a e todas as suas tabelas

Acesso de leitura e escrita

Analista de dados do Negócio A

dlf_dba_analyst

db_a.table1 (apenas col1, col2)

Acesso de leitura a colunas específicas

Pré-requisitos

Antes de começar, verifique se você possui:

  • Uma conta Alibaba Cloud com permissões para criar clusters EMR e usuários RAM

  • Familiaridade com HiveQL e a CLI Beeline

Etapa 1: Criar um cluster EMR com metadados DLF

  1. Faça login no console do E-MapReduce.

  2. Crie um cluster EMR com as seguintes configurações:

    Configuração

    Valor

    Business scenario

    Data Lake

    Optional services

    Selecione pelo menos Hive e DLF-Auth

    Metadata

    DLF Unified Metadata

    DLF Catalog

    Selecione um catalog existente ou crie um novo. Este tutorial utiliza catalog_test.

  3. Conclua as configurações restantes e crie o cluster.

Caso já possua um cluster EMR sem o componente DLF-Auth, adicione-o pela opção Add Service na página de gerenciamento do cluster. Se o cluster utilizar metadados Hive não conectados ao DLF, migre-os primeiro. Para assistência na migração, entre em contato com o suporte pelo grupo DingTalk 33719678 .

Etapa 2: Inicializar bancos de dados e tabelas

  1. Faça login no cluster EMR. Para obter instruções, consulte Log on to a cluster.

  2. Conecte-se ao HiveServer2 usando o Beeline:

    beeline -u jdbc:hive2://<primary-node-name>:10000
  3. Execute as instruções HiveQL a seguir para criar os bancos de dados, as tabelas e os dados de teste:

    -- Create databases and tables
    CREATE DATABASE db_a;
    CREATE TABLE db_a.table1 (col1 STRING, col2 STRING, col3 STRING);
    CREATE TABLE db_a.table2 (col1 STRING, col2 STRING, col3 STRING);
    
    CREATE DATABASE db_b;
    CREATE TABLE db_b.table1 (col1 STRING, col2 STRING, col3 STRING);
    
    -- Insert test data
    INSERT OVERWRITE TABLE db_a.table1 VALUES ('1','aliyun','emrA1'), ('2','aliyun','dlfA1');
    INSERT OVERWRITE TABLE db_a.table2 VALUES ('1','aliyun','emrA2'), ('2','aliyun','dlfA2');
    INSERT OVERWRITE TABLE db_b.table1 VALUES ('1','aliyun','emrB1'), ('2','aliyun','dlfB1');

Etapa 3: Criar usuários RAM para cada função

No console do RAM, crie os seguintes usuários RAM:

Função

Usuário RAM

Superadministrador

dlf_data_admin

Administrador de dados do Negócio A

dlf_dba_admin

Desenvolvedor de dados do Negócio A

dlf_dba_dev

Analista de dados do Negócio A

dlf_dba_analyst

Etapa 4: Ativar o controle de acesso

Siga as duas etapas abaixo para ativar o controle de acesso no cluster:

  1. Ative o DLF-Auth no cluster EMR. Para obter instruções, consulte DLF-Auth.

  2. Ative o controle de permissões para o catalog no DLF. Para obter instruções, consulte Configure permissions.

Em ambientes de produção, ative a autenticação LDAP para verificar identidades de usuários. Este tutorial não aborda a autenticação LDAP; portanto, nenhuma senha é necessária ao conectar-se com o Beeline.

Etapa 5: Conceder acesso total ao superadministrador

Permissões necessárias: Proprietário da conta Alibaba Cloud ou usuário com as políticas AliyunDLFFullAccess e AliyunRAMReadOnlyAccess.

  1. Faça login no console do Data Lake Formation.

  2. No painel de navegação à esquerda, escolha Data Permission > Role.

  3. Na função admin, adicione dlf_data_admin. Essa ação concede ao usuário acesso administrativo a todos os dados no DLF, incluindo a capacidade de conceder permissões a outros usuários.

  4. Para permitir que dlf_data_admin gerencie permissões de usuários RAM no console DLF, anexe as seguintes políticas no console do RAM: AliyunDLFFullAccess e AliyunRAMReadOnlyAccess.

  5. Verifique se dlf_data_admin consegue acessar todos os bancos de dados. Conecte-se ao Hive como dlf_data_admin:

    beeline -u jdbc:hive2://<primary-node-name>:10000 -n dlf_data_admin

    Execute as seguintes consultas:

    SELECT * FROM db_a.table1;
    SELECT * FROM db_b.table1;

    Ambas as consultas devem ser executadas com sucesso. O superadministrador tem acesso a todos os bancos de dados e tabelas.

Etapa 6: Conceder ao administrador de dados do Negócio A acesso ao db_a

Permissões necessárias: Faça login como dlf_data_admin (superadministrador).

  1. Faça login no console do Data Lake Formation.

  2. No painel de navegação à esquerda, escolha Data Permission > Data Permissions e clique em Add Permission.

  3. Preencha os seguintes campos:

    Campo

    Valor

    Principal type

    RAM User/Role

    Choose principal

    dlf_dba_admin

    Resources

    Resource Authorization

    Select catalog

    catalog_test

    Database

    db_a

    Database – Data permission

    ALL

    Database – Granted permission

    ALL

    All objects in database – Data permission

    ALL

    All objects in database – Granted permission

    ALL

  4. Clique em OK.

  5. Para permitir que dlf_dba_admin gerencie permissões de outros usuários RAM no console DLF, anexe as seguintes políticas no console do RAM: AliyunDLFFullAccess e AliyunRAMReadOnlyAccess.

  6. Verifique as permissões. Conecte-se ao Hive como dlf_dba_admin:

    beeline -u jdbc:hive2://<primary-node-name>:10000 -n dlf_dba_admin

    Execute as seguintes consultas:

    SELECT * FROM db_a.table1;   -- Expected: success
    SELECT * FROM db_b.table1;   -- Expected: permission denied

    A primeira consulta é bem-sucedida porque dlf_dba_admin tem acesso total a db_a. A segunda consulta falha porque dlf_dba_admin não possui acesso a db_b.

Etapa 7: Conceder ao desenvolvedor de dados do Negócio A acesso ao db_a

Permissões necessárias: Faça login como dlf_dba_admin (administrador de dados do Negócio A).

  1. Faça login no console do Data Lake Formation.

  2. No painel de navegação à esquerda, escolha Data Permission > Data Permissions e clique em Add Permission.

  3. Preencha os seguintes campos:

    Campo

    Valor

    Principal type

    RAM User/Role

    Choose principal

    dlf_dba_dev

    Resources

    Resource Authorization

    Select catalog

    catalog_test

    Database

    db_a

    Database – Data permission

    ALL

    Database – Granted permission

    ALL

    All objects in database – Data permission

    ALL

    All objects in database – Granted permission

    ALL

  4. Clique em OK.

  5. Verifique as permissões. Conecte-se ao Hive como dlf_dba_dev:

    beeline -u jdbc:hive2://<primary-node-name>:10000 -n dlf_dba_dev

    Execute as seguintes consultas:

    SELECT * FROM db_a.table1;                                              -- Expected: success
    INSERT INTO TABLE db_a.table1 VALUES ('3','aliyun','emrA1'), ('4','aliyun','dlfA1');  -- Expected: success
    SELECT * FROM db_b.table1;                                              -- Expected: permission denied
    INSERT INTO TABLE db_b.table1 VALUES ('3','aliyun','emrA1'), ('4','aliyun','dlfA1');  -- Expected: permission denied

    As consultas em db_a são bem-sucedidas. As consultas em db_b falham porque dlf_dba_dev tem acesso apenas a db_a.

Etapa 8: Conceder ao analista de dados do Negócio A acesso no nível de coluna

Permissões necessárias: Faça login como dlf_dba_admin (administrador de dados do Negócio A).

  1. Faça login no console do Data Lake Formation.

  2. No painel de navegação à esquerda, escolha Data Permission > Data Permissions e clique em Add Permission.

  3. Preencha os seguintes campos:

    Campo

    Valor

    Principal type

    RAM User/Role

    Choose principal

    dlf_dba_analyst

    Resources

    Resource Authorization

    Resource type

    Column

    Select catalog

    catalog_test

    Select database

    db_a

    Select table

    table1

    DataColumn – Data permission

    ALL

  4. Clique em OK.

  5. Verifique as permissões. Conecte-se ao Hive como dlf_dba_analyst:

    beeline -u jdbc:hive2://<primary-node-name>:10000 -n dlf_dba_analyst

    Execute as seguintes consultas:

    SELECT col1, col2 FROM db_a.table1;   -- Expected: success
    SELECT * FROM db_a.table1;             -- Expected: permission denied (no access to col3)
    INSERT INTO TABLE db_a.table1 VALUES ('5','aliyun','emrA1'), ('6','aliyun','dlfA1');  -- Expected: permission denied
    SELECT * FROM db_b.table1;             -- Expected: permission denied

    O usuário dlf_dba_analyst só pode ler col1 e col2 de db_a.table1. Qualquer outro acesso — incluindo col3, operações de escrita e consultas entre bancos de dados — é negado.

Próximos passos

  • Ative a autenticação LDAP para impor a verificação de identidade em produção. Consulte DLF-Auth.

  • Saiba como revogar ou modifique permissões no console DLF. Consulte Configure permissions.

  • Explore os controles de permissão no nível de função do DLF para restringir o acesso a UDFs por função.