As tabelas de um projeto externo pertencem à conta Alibaba Cloud que criou o projeto. Para permitir que outros usuários consultem ou modifiquem essas tabelas, adicione-os ao projeto externo e conceda as permissões explicitamente.
Observações de uso
Quando a solução de data lakehouse está ativada no MaxCompute, o serviço não persiste metadados na source de dados. O gerenciamento das políticas ocorre com base nos nomes dos objetos dessa source. Se o nome de um objeto for alterado, suas permissões tornar-se-ão inválidas. Nesse caso, execute Revoke ou exclua a política para removê-las. Caso você não limpe as permissões antigas antes da criação de um novo objeto com o mesmo nome, esse novo objeto herdará tais permissões, o que pode resultar em acessos indesejados.
Pré-requisitos
Antes de começar, certifique-se de ter:
Criado um projeto externo
O nome da conta Alibaba Cloud do usuário de destino (formato:
ALIYUN$<account_name>)(Opcional) Se estiver concedendo acesso a um usuário RAM, o projeto externo deve ter o suporte a RAM ativado
Para consultar os usuários existentes no projeto, execute list users; no cliente MaxCompute (odpscmd).
Para conceder acesso a outras contas Alibaba Cloud ou usuários RAM, siga os padrões de segurança do MaxCompute. Para mais detalhes, consulte Visão geral de permissões .
Conceder acesso a um usuário em um projeto externo
O fluxo de autorização abrange dois projetos: o projeto externo (onde você adiciona o usuário e concede permissões de tabela) e o projeto principal (onde você concede permissões para execução de jobs). A tabela abaixo resume todas as etapas necessárias antes de iniciar.
|
Etapa |
Projeto |
Finalidade |
Comando SQL |
|
1 |
Projeto externo |
Alternar contexto |
|
|
2 (Opcional) |
Projeto externo |
Ativar suporte a usuário RAM |
|
|
3 (Opcional) |
Projeto externo |
Habilitar tipos de dados compatíveis com Hive |
|
|
4 |
Projeto externo |
Adicionar usuário ao projeto |
|
|
5 |
Projeto externo |
Conceder permissão para listar tabelas |
|
|
6 |
Projeto externo |
Conceder permissões em uma tabela |
|
|
7 |
Projeto principal |
Alternar contexto |
|
|
8 |
Projeto principal |
Conceder permissão para executar jobs |
|
Etapa 1: Alternar para o projeto externo
use <external_project_name>;
Etapa 2: (Opcional) Ativar suporte a RAM
Execute esta etapa apenas se o usuário adicionado for um usuário RAM.
add accountprovider ram;
Etapa 3: (Opcional) Habilitar tipos de dados compatíveis com Hive
Execute esta etapa somente quando o projeto externo utilizar uma source de dados externa Hadoop.
set odps.sql.hive.compatible=true;
Etapa 4: Adicionar o usuário ao projeto
add user <Alibaba Cloud account>;
Substitua <Alibaba Cloud account> pelo nome da conta no formato ALIYUN$<account_name>.
Etapa 5: Conceder permissão para listar tabelas
grant List on project external_project to USER <Alibaba Cloud account>;
Essa ação permite que o usuário visualize as tabelas existentes no projeto externo.
Etapa 6: Conceder permissões em uma tabela
grant All on table <table_name> to user <Alibaba Cloud account>;
Substitua <table_name> pelo nome da tabela a ser compartilhada.
Etapa 7: Alternar para o projeto principal
use <main_project_name>;
Etapa 8: Conceder permissão para executar jobs
grant CreateInstance on project <main_project_name> to user <Alibaba Cloud account>;
Próximos passos
Após a concessão de acesso, o usuário poderá consultar e atualizar dados das tabelas no projeto externo por meio de SQL. Para obter a lista completa de operações suportadas, consulte Usar instruções SQL para gerenciar um projeto externo.