Todos os produtos
Search
Central de documentação

MaxCompute:Controle de permissão de download

Última atualização: Jun 26, 2026

O controle de download permite gerenciar quem pode exportar dados do projeto MaxCompute por meio de comandos Tunnel. Sem esse recurso, qualquer usuário ou função no projeto pode baixar tabelas ou instâncias livremente, o que gera risco de exfiltração de dados. Após a ativação, apenas usuários ou funções com permissões explícitas de download podem exportar dados.

Como funciona

Por padrão, o controle de download vem desativado em novos projetos. Após ativá-lo no nível do projeto, todas as operações de download baseadas em Tunnel passam a exigir permissões explícitas.

A tabela a seguir mostra quais objetos aceitam permissões de download e como autorizá-los:

Tipo de objeto

Valores válidos

Suporte a curinga

Table

Nome da tabela ou visualização

Apenas baseado em função (*)

Instance

Nome da instância (igual ao ID da instância)

Sem suporte para curingas

Dois modelos de autorização estão disponíveis:

Modelo

Como funciona

Mais indicado para

Autorização de usuário único

Concede permissões de download diretamente a um usuário em tabelas ou instâncias específicas

Acesso direcionado a usuários individuais

Autorização baseada em função

Concede permissões de download a uma função e, em seguida, atribui essa função a vários usuários

Gerenciar acesso de grupos; aceita curingas (*) nos nomes dos objetos

Limites e observações de uso

Limites:

  • A autorização se aplica somente a sujeitos (usuários ou funções) e objetos já existentes. Não é possível pré-autorizar sujeitos ou objetos futuros.

  • Ao conceder permissões diretamente a um usuário, não há suporte para curingas (*) nos nomes dos objetos. Essa restrição evita concessões amplas e não intencionais de acesso. Utilize autorização baseada em função quando precisar de padrões com curingas.

Observações de uso:

Ativar o controle de download

Permissões necessárias: Proprietário do projeto ou função Super_Administrator.

Execute o seguinte comando no nível do projeto:

setproject odps.security.enabledownloadprivilege=true;

Para desativar o controle de download:

setproject odps.security.enabledownloadprivilege=false;

Conceder e revogar permissões de download

Permissões necessárias: Para conceder ou revogar permissões em um objeto, consulte a coluna Authorized by em Permissões.

Execute todos os comandos no cliente MaxCompute, no MaxCompute Studio ou no console DataWorks.

Fluxo de trabalho

Tanto para autorização de usuário único quanto para autorização baseada em função, siga esta sequência:

  1. Confirme se o usuário ou a função é membro do projeto. Execute list users; ou list roles; no cliente MaxCompute para consultar os nomes. Para adicionar usuários ou funções, consulte Planejamento e gerenciamento de usuários ou Planejamento de funções.

  2. Verifique os nomes das tabelas ou instâncias a serem controladas. Execute show tables; ou show instances; para listar os objetos disponíveis.

  3. Execute o comando grant ou revoke.

  4. Verifique o resultado com show grants ou describe role.

Sintaxe

Conceder permissões de download:

grant Download on <object_type> <object_name> to <subject_type> <subject_name>;

Revogar permissões de download:

revoke Download on <object_type> <object_name> from <subject_type> <subject_name>;

Parâmetros

Parâmetro

Obrigatório

Descrição

object_type

Sim

Tipo do objeto. Valores válidos: Table, Instance. Um tipo de objeto por comando.

object_name

Sim

Nome da tabela, visualização ou instância. Na autorização baseada em função, há suporte para curingas. Por exemplo, table taobao* corresponde a todas as tabelas cujos nomes começam com taobao. Execute show tables; ou show instances; para obter os nomes.

subject_type

Sim

Tipo do sujeito. Valores válidos: USER (uma conta Alibaba Cloud ou usuário RAM), ROLE (uma função).

subject_name

Sim

Nome do usuário ou da função. Um sujeito por comando. Use ALIYUN$<account> para contas Alibaba Cloud e RAM$<account>:<username> para usuários RAM. Execute list users; ou list roles; para obter os nomes.

Exemplos

Os exemplos a seguir utilizam esta configuração: username@example.com é proprietário de test_project_a. Allen, Tom e Alice são usuários RAM dessa conta. O controle de download está ativado para o projeto.

Exemplo 1: Conceder permissões de download a um usuário RAM

Adicione Allen ao projeto e conceda permissões de download na tabela sale_detail:

-- Switch to the project.
use test_project_a;
-- Add Allen as a project member.
add user RAM$username@example.com:Allen;
-- Grant Allen download permissions on sale_detail.
grant Download on table sale_detail to USER RAM$username@example.com:Allen;
-- Verify Allen's permissions.
show grants for RAM$username@example.com:Allen;

Saída esperada:

Authorization Type: ACL
[user/RAM$username@example.com:Allen]
A       projects/test_project_a/tables/sale_detail: Download

Exemplo 2: Revogar permissões de download de um usuário RAM

Revogue as permissões concedidas no Exemplo 1:

-- Switch to the project.
use test_project_a;
-- Revoke Allen's download permissions.
revoke Download on table sale_detail from USER RAM$username@example.com:Allen;
-- Verify that permissions are removed.
show grants for RAM$username@example.com:Allen;

Exemplo 3: Conceder permissões de download a vários usuários por meio de uma função

Conceda a Alice e Tom permissões de download em todas as tabelas cujos nomes começam com tb_:

-- Switch to the project.
use test_project_a;
-- Add Alice and Tom as project members.
add user RAM$username@example.com:Alice;
add user RAM$username@example.com:Tom;
-- Create a role.
create role Worker;
-- Assign the role to Alice and Tom.
grant Worker TO RAM$username@example.com:Alice;
grant Worker TO RAM$username@example.com:Tom;
-- Grant the Worker role download permissions on all tb_* tables.
grant Download on table tb_* to ROLE Worker;
-- Verify the role's permissions.
describe role Worker;

Saída esperada:

Authorization Type: Policy
[role/worker]
A       projects/test_project_a/tables/tb_*: Download

Exemplo 4: Revogar permissões de download baseadas em função

Revogue as permissões concedidas no Exemplo 3 de Alice e Tom:

-- Switch to the project.
use test_project_a;
-- Remove the Worker role from Alice and Tom.
revoke Worker from RAM$username@example.com:Alice;
revoke Worker from RAM$username@example.com:Tom;
-- Verify that Alice's permissions no longer include download access.
show grants for RAM$username@example.com:Alice;

Próximos passos