Após adicionar um usuário a um projeto do MaxCompute, conceda as permissões necessárias. O usuário só executa operações no projeto após obter essas permissões. No MaxCompute, conceda permissões aos usuários atribuindo funções ou concedendo-as diretamente. Este tópico descreve a sintaxe de comandos para autorização de usuários e fornece exemplos.
Conceda permissões a um usuário anexando uma função no nível do projeto
O MaxCompute recomenda atribuir funções personalizadas no nível do projeto ou funções administrativas integradas aos usuários. Essa abordagem concede aos usuários as mesmas permissões da função e simplifica o processo de alteração ou revogação de permissões para vários usuários simultaneamente.
Para adicionar usuários a um projeto do MaxCompute, consulte User planning and management.
Ao remover um usuário de um projeto, limpe prontamente as informações de permissão residuais. Para mais informações, consulte Purge the residual permission information of a removed user.
Atribua uma função no nível do projeto MaxCompute a um usuário
Atribua uma função integrada ou personalizada no nível do projeto a um usuário. O usuário herda as permissões dessa função.
-
Formato do comando
grant <role_name> to <user_name>; -
Observações
Vários usuários podem receber a mesma função no nível do projeto. Um único usuário também pode receber múltiplas funções no nível do projeto.
-
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
role_name
Sim
Nome da função a ser atribuída ao usuário.
Execute o comando
list roles;no MaxCompute client para visualizar as informações da função.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute ao qual você deseja atribuir a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário. -
Exemplos
Anexe a função no nível do projeto
Workerao usuário Alibaba Cloud ALIYUN$5527xxxxxxxx5788, ao usuário RAM RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649 e à função RAM RAM$5527xxxxxxxx5788:role/ram_role no projeto MaxCompute.--Enter the test_project_a project. use test_project_a; --Assign the role to an Alibaba Cloud account. grant Worker to ALIYUN$5527xxxxxxxx5788; --Assign the role to a RAM user. grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; --Assign the role to a RAM role. grant Worker to `RAM$5527xxxxxxxx5788:role/ram_role`;
Revogue uma função no nível do projeto MaxCompute de um usuário
Desanexe uma função de um usuário. O usuário perde as permissões associadas a essa função.
-
Formato do comando
revoke <role_name> from <user_name>; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
role_name
Sim
Nome da função a ser revogada.
Execute o comando
list roles;no MaxCompute client para obter o nome da função.user_name
Sim
Nome do usuário do qual você deseja revogar a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para obter o nome de usuário. -
Exemplos
Revogue a função
Workerdos usuários ALIYUN$5527xxxxxxxx5788,RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649e RAM$5527xxxxxxxx5788:role/ram_role.--Enter the test_project_a project. use test_project_a; --Revoke the role from the Alibaba Cloud account. revoke Worker from ALIYUN$5527xxxxxxxx5788; --Revoke the role from the RAM user. revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; --Revoke the role from the RAM role. revoke Worker from `RAM$5527xxxxxxxx5788:role/ram_role`;
Cenários comuns de autorização e exemplos de sintaxe
Cenário de autorização | Método de autorização | Autorizador | Ponto de entrada de autorização |
Conceder permissões de operação em um objeto a um usuário usando uma função | Primeiro, conceda permissões à função usando Access Control List (ACL)-based access control ou policy-based access control. Em seguida, atribua a função ao usuário. | Consulte a coluna Supported Authorizers no Resumo de permissões. | |
Revogar permissões de operação em um objeto concedidas a um usuário usando uma função | |||
Conceder a permissão Download a um usuário usando uma função | Primeiro, conceda permissões à função usando download permission control. Em seguida, atribua a função ao usuário. | ||
Revogar a permissão Download concedida a um usuário usando uma função | |||
Conceder permissões de acesso a dados com o mesmo nível alto de sensibilidade a um usuário usando uma função | Primeiro, conceda permissões à função usando label-based access control. Em seguida, atribua a função ao usuário. | ||
Revogar permissões de acesso a dados com o mesmo nível alto de sensibilidade concedidas a um usuário usando uma função |
Conceda permissões de operação em um objeto a um usuário usando uma função
Conceda permissões a uma função usando o mecanismo de autorização baseado em ACL ou em política. Depois, atribua a função a vários usuários.
Para mais informações sobre como conceder permissões a uma função, consulte Grant operation permissions on an object to a role.
Suponha que ALIYUN$5527xxxxxxxx5789 seja o proprietário do projeto test_project_a. Allen, Alice e Tom são usuários RAM de ALIYUN$5527xxxxxxxx5789. Conceda aos três usuários RAM permissões para criar tabelas, modelos, funções e instâncias, além de visualizar a lista de todos os tipos de objetos no projeto. O comando a seguir fornece um exemplo.
--Enter the test_project_a project.
use test_project_a;
--Add Allen, Alice, and Tom to the test_project_a project.
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
--Create the Worker role.
create role Worker;
--Grant permissions to the Worker role.
--Method 1: ACL-based authorization.
grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker;
--Method 2: Policy-based authorization.
grant CreateTable, CreateFunction, CreateInstance, List
on project test_project_a
to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
--Assign the Worker role to the users.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
Revogue permissões de operação em um objeto concedidas a um usuário usando uma função
Revogue a autorização das seguintes maneiras:
-
Revogue as permissões da função
Todos os usuários aos quais essa função foi atribuída perderão as permissões correspondentes.
-
Revogue a função de um usuário específico
Apenas o usuário do qual a função foi revogada perde as permissões. As permissões de outros usuários não são afetadas.
Suponha que ALIYUN$5527xxxxxxxx5789 seja o proprietário do projeto test_project_a. Allen, Alice e Tom são usuários RAM pertencentes à conta ALIYUN$5527xxxxxxxx5789. Os três usuários RAM receberam permissões para criar tabelas, modelos, funções e instâncias, além de visualizar a lista de todos os tipos de objetos no projeto por meio da função Worker. Os exemplos a seguir mostram os comandos para revogar permissões de operação em objetos.
-
Método 1: Revogue as permissões da função
Worker.--Enter the test_project_a project. use test_project_a; --Revoke the permissions from the Worker role. Allen, Alice, and Tom no longer have the CreateTable, CreateFunction, CreateInstance, and List permissions. --Revoke ACL-based authorization. revoke CreateTable, CreateModel, CreateFunction, CreateInstance, List on project test_project_a from ROLE Worker; --Revoke Policy-based authorization. revoke CreateTable, CreateModel, CreateFunction, CreateInstance, List on project test_project_a from ROLE Worker privilegeproperties("policy" = "true", "allow"="true"); -
Método 2: Revogue a função
Workerde um usuário.--Enter the test_project_a project. use test_project_a; --Revoke the Worker role from the user. Only Allen no longer has the CreateTable, CreateFunction, CreateInstance, and List permissions. revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Conceda a permissão Download a um usuário usando uma função
Conceda permissões a uma função usando o mecanismo de autorização de download. Depois, atribua a função ao usuário.
Para mais informações sobre como conceder permissões a uma função, consulte Grant the Download permission to a role.
Suponha que ALIYUN$5527xxxxxxxx5789 seja o proprietário do projeto test_project_a, e Allen, Alice e Tom sejam usuários RAM pertencentes a ALIYUN$5527xxxxxxxx5789. Conceda aos três usuários RAM permissões para baixar dados de uma tabela específica. O comando a seguir fornece um exemplo.
--Bob enters the test_project_a project.
use test_project_a;
--Bob adds Allen, Alice, and Tom to the test_project_a project.
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
--Bob creates the Worker role.
create role Worker;
--Bob grants permissions to the Worker role.
grant download on table sale_detail to ROLE Worker;
--Assign the Worker role to the users.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
Revogue a permissão Download concedida a um usuário usando uma função
Revogue a autorização das seguintes maneiras:
-
Revogue as permissões da função
Todos os usuários aos quais essa função foi atribuída perderão as permissões correspondentes.
-
Revogue a função de um usuário específico
Apenas o usuário do qual a função foi revogada perde as permissões. As permissões de outros usuários não são afetadas.
Suponha que ALIYUN$5527xxxxxxxx5789 seja o proprietário do projeto test_project_a. Allen, Alice e Tom são usuários RAM da conta ALIYUN$5527xxxxxxxx5789. Você concedeu aos três usuários RAM permissão para baixar todos os dados da tabela atribuindo a função Worker a eles. Para revogar a permissão Download dos usuários RAM, use um dos seguintes métodos:
-
Método 1: Revogue as permissões da função
Worker.--Enter the test_project_a project. use test_project_a; --Revoke the permissions from the Worker role. Allen, Alice, and Tom no longer have the Download permission. revoke Download on table sale_detail from ROLE Worker; -
Método 2: Revogue a função
Workerde um usuário.--Enter the test_project_a project. use test_project_a; --Revoke the Worker role from the user. Only Allen no longer has the Download permission. revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Conceda permissões de acesso a dados com o mesmo nível alto de sensibilidade a um usuário usando uma função
Conceda permissões a uma função usando o mecanismo de autorização baseado em rótulo ou em política. Depois, atribua a função a vários usuários.
Para mais informações sobre como conceder permissões a uma função, consulte Grant permissions to access data with a high sensitivity level to a role.
Suponha que ALIYUN$5527xxxxxxxx5789 seja o proprietário do projeto test_project_a, e Allen, Alice e Tom sejam usuários RAM de ALIYUN$5527xxxxxxxx5789. O nível de acesso a dados desses usuários RAM é 2. Para conceder a eles permissões de acesso a dados com nível de sensibilidade 4 em uma tabela de destino dentro do projeto, use o comando a seguir.
--Enter the test_project_a project.
use test_project_a;
--Create the Worker role.
create role Worker;
--Grant permissions to the Worker role.
grant Label 4 on table <table_name> to ROLE Worker; --table_name is the name of the destination table.
--Assign the Worker role to the users.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
Revogue permissões de acesso a dados com o mesmo nível alto de sensibilidade concedidas a um usuário usando uma função
Revogue a autorização das seguintes maneiras:
-
Revogue as permissões da função
Todos os usuários aos quais essa função foi atribuída perderão as permissões correspondentes.
-
Revogue a função de um usuário específico
Apenas o usuário do qual a função foi revogada perde as permissões. As permissões de outros usuários não são afetadas.
Suponha que ALIYUN$5527xxxxxxxx5789 seja o proprietário do projeto test_project_a. Allen, Alice e Tom são usuários RAM pertencentes a ALIYUN$5527xxxxxxxx5789. Os três usuários RAM receberam permissões para acessar dados com nível de sensibilidade 4 em uma tabela de destino do projeto. Para revogar as permissões de acesso a esses dados altamente sensíveis, use os comandos de exemplo a seguir.
-
Método 1: Revogue as permissões da função
Worker.--Enter the test_project_a project. use test_project_a; --Revoke the permissions from the Worker role. Allen, Alice, and Tom can now only access data with a maximum sensitivity level of 2. revoke Label on table <table_name> from ROLE Worker; --table_name is the name of the destination table. -
Método 2: Revogue a função
Workerde um usuário.--Enter the test_project_a project. use test_project_a; --Revoke the Worker role from the user. Allen can now only access data with a maximum sensitivity level of 2. Alice and Tom can still access data with a maximum sensitivity level of 4. revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Conceda permissões diretamente a um usuário
O MaxCompute também permite conceder permissões diretamente aos usuários. As seções a seguir descrevem cenários comuns de autorização e fornecem exemplos de sintaxe.
Para adicionar usuários a um projeto do MaxCompute, consulte User planning and management.
Ao remover um usuário de um projeto, limpe prontamente as informações de permissão residuais. Para mais informações, consulte Purge the residual permission information of a removed user.
Cenário de autorização | Método de autorização | Autorizador | Ponto de entrada de autorização |
Conceder permissões de operação em um objeto a um usuário | Consulte a coluna Supported Authorizers no Resumo de permissões. | ||
Revogar permissões de operação em um objeto de um usuário | |||
Conceder a permissão Download a um usuário | |||
Revogar a permissão Download de um usuário | |||
Conceder permissões de acesso a dados com alto nível de sensibilidade a um usuário | |||
Revogar permissões de acesso a dados com alto nível de sensibilidade de um usuário |
Conceda permissões de operação em um objeto a um usuário
Conceda permissões de operação em um projeto, tabela, modelo, recurso, função ou instância a um usuário usando o mecanismo de autorização baseado em ACL.
-
Conceda permissões de operação em um projeto a um usuário
-
Formato do comando
grant Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All on project <project_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
project_name
Sim
Nome do projeto. Faça login no MaxCompute console, alterne a região no canto superior esquerdo e obtenha o nome específico do projeto MaxCompute na aba Project management.
user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute ao qual você deseja atribuir a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Consulte Conditions para obter uma lista de valores suportados para var_name e Operation.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Conceda permissões de operação em uma tabela a um usuário
-
Formato do comando
grant Describe|Select|Alter|Update|Drop|ShowHistory|All on table <table_name> [(<column_list>)] to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
table_name
Sim
Nome da tabela: Execute o comando
show tables;no MaxCompute client para obter o nome de uma tabela ou visualização.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute ao qual você deseja atribuir a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Para obter uma lista de valores suportados para var_name e Operation, consulte Conditions.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Conceda permissões de operação em um modelo a um usuário
-
Formato do comando
grant Describe|Execute|Alter|Drop|All on MODEL <model_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Parâmetros
model_name: Obrigatório. Nome do modelo. Obtenha o nome do modelo executando o comando
list models;no MaxCompute client.
-
-
Conceda permissões de operação em um recurso a um usuário
-
Formato do comando
grant Read|Write|Delete|All on resource <resource_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
resource_name
Sim
Nome do recurso: Use o MaxCompute client para executar o comando
list resources;e obter o nome do recurso.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute ao qual você deseja atribuir a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Para obter uma lista de valores suportados para var_name e Operation, consulte Conditions.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Conceda permissões de operação em uma função a um usuário
-
Formato do comando
grant Read|Write|Delete|Execute|All on function <function_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
function_name
Sim
Nome da função: Obtenha o nome da função executando o comando
list functions;no MaxCompute client.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute ao qual você deseja atribuir a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Para obter uma lista de valores suportados para var_name e Operation, consulte Conditions.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Conceda permissões de operação em uma instância a um usuário
-
Formato do comando
grant Read|Write|All on instance <instance_id> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
instance_id
Sim
ID da instância: Execute o comando
show instances;no MaxCompute client para obter o ID da instância.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute ao qual você deseja atribuir a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Para obter uma lista de valores suportados para var_name e Operation, consulte Conditions.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Exemplos
Suponha que ALIYUN$5527xxxxxxxx5789 seja o proprietário do projeto
test_project_a. Allen, Alice e Tom são usuários RAM pertencentes à conta Alibaba Cloud ALIYUN$5527xxxxxxxx5789. RAM$5527xxxxxxxx5789:role/ram_role é uma função RAM pertencente à conta Alibaba Cloud ALIYUN$5527xxxxxxxx5789. ALIYUN$5527xxxxxxxx5788 é outra conta Alibaba Cloud a ser adicionada ao projetotest_project_a.-
Exemplo 1: Conceda à conta Alibaba Cloud Kate permissões para criar tabelas, funções e instâncias, além de visualizar a lista de todos os tipos de objetos no projeto.
--ALIYUN$5527xxxxxxxx5789 enters the test_project_a project. use test_project_a; --Add ALIYUN$5527xxxxxxxx5788 to the MaxCompute project. add user ALIYUN$5527xxxxxxxx5788; --ALIYUN$5527xxxxxxxx5789 grants permissions to ALIYUN$5527xxxxxxxx5788. grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to user ALIYUN$5527xxxxxxxx5788; -
Exemplo 2: Conceda ao usuário RAM Allen e a uma função RAM permissões para criar tabelas, visualizar todos os tipos de objetos no projeto e ler os metadados e dados de uma tabela.
--Enter the test_project_a project. use test_project_a; --Add Allen to the test_project_a project. add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649; --Add the RAM role to the test_project_a project. add user `RAM$5527xxxxxxxx5789:role/ram_role`; --Grant permissions to the RAM user Allen. grant CreateTable, List on project test_project_a to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649; grant Describe, Select on table sale_detail to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649; --Grant permissions to the RAM role. grant CreateTable, List on project test_project_a to USER `RAM$5527xxxxxxxx5789:role/ram_role`; grant Describe, Select on table sale_detail to USER `RAM$5527xxxxxxxx5789:role/ram_role`; -
Exemplo 3: Conceda ao usuário RAM Alice permissões para ler e atualizar um recurso.
--Enter the test_project_a project. use test_project_a; --Add Alice to the test_project_a project. add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1650; --Grant permissions to Alice. grant Read, Write on resource udtf.jar to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1650; -
Exemplo 4: Conceda ao usuário RAM Tom permissões para ler e atualizar uma função.
--Enter the test_project_a project. use test_project_a; --Add Tom to the test_project_a project. add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651; --Grant permissions to Tom. grant Read, Write on function udf_test to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651; -
Exemplo 5: Conceda ao usuário RAM Tom todas as permissões de operação em uma instância.
--Enter the test_project_a project. use test_project_a; --Add Tom to the test_project_a project. add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651; --Grant permissions to Tom. grant All on instance 202112300224**** to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;
-
Revogue permissões de operação em um objeto de um usuário
Revogue permissões de operação em um projeto, tabela, modelo, recurso, função ou instância de um usuário.
-
Revogue permissões de operação em um projeto de um usuário
-
Formato do comando
revoke Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All on project <project_name> from USER <user_name>; -
Parâmetros
Parâmetro
Obrigatório
Descrição
project_name
Sim
Nome do projeto. Faça login no MaxCompute console, alterne a região no canto superior esquerdo e obtenha o nome específico do projeto MaxCompute na aba Project management.
user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute do qual você deseja revogar a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Para obter a lista de valores suportados para var_name e Operation, consulte Conditions.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Revogue permissões de operação em uma tabela de um usuário
-
Formato do comando
revoke Describe|Select|Alter|Update|Drop|ShowHistory|All on table <table_name> [(<column_list>)] from USER <user_name>; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
table_name
Sim
Nome da tabela: Obtenha o nome de uma tabela ou visualização executando o comando
show tables;no MaxCompute client.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute do qual você deseja revogar a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Para obter uma lista de valores suportados para var_name e Operation, consulte Conditions.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Revogue permissões de operação em um modelo de um usuário
-
Formato do comando
revoke Describe|Execute|Alter|Drop|All on MODEL <model_name> from USER <user_name>; -
Parâmetros
model_name: Obrigatório. Nome do modelo. Obtenha o nome do modelo executando o comando
list models;no MaxCompute client.
-
-
Revogue permissões de operação em um recurso de um usuário
-
Formato do comando
revoke Read|Write|Delete|All on resource <resource_name> from USER <user_name>; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
resource_name
Sim
Obtenha o nome do recurso executando o comando
list resources;no MaxCompute client.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute do qual você deseja revogar a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Para obter uma lista de valores suportados para var_name e Operation, consulte Conditions.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Revogue permissões de operação em uma função de um usuário
-
Formato do comando
revoke Read|Write|Delete|Execute|All on function <function_name> from USER <user_name>; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
function_name
Sim
Nome da função: Obtenha o nome da função executando o comando
list functions;no MaxCompute client.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute do qual você deseja revogar a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Consulte Conditions para obter uma lista de valores suportados para var_name e Operation.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Revogue permissões de operação em uma instância de um usuário
-
Formato do comando
revoke Read|Write|All on instance <instance_id> from USER <user_name>; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
instance_id
Sim
ID da instância: Obtenha o ID da instância executando o comando
show instances;no MaxCompute client.user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute do qual você deseja revogar a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Use o MaxCompute client para executar o comando
list users;e visualizar as informações do usuário.privilegeproperties
conditions
Não
Condições usadas para controle de acesso baseado em política, como a origem de uma mensagem de solicitação e o método de acesso. O formato é
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Para obter uma lista de valores suportados para var_name e Operation, consulte Conditions.days
Não
Tempo de expiração da permissão, em dias. Se você não especificar esse parâmetro, a permissão será válida por longo prazo por padrão. Se você especificar esse parâmetro, o MaxCompute limpará automaticamente as informações de permissão após a expiração.
-
-
Exemplos
Revogue as permissões de operação em objetos concedidas ao usuário Alibaba Cloud e aos usuários RAM. O comando a seguir fornece um exemplo.
-
Exemplo 1: Revogue de Kate as permissões para criar tabelas, funções e instâncias, além de visualizar a lista de todos os tipos de objetos no projeto.
--Enter the test_project_a project. use test_project_a; --Revoke permissions from the Alibaba Cloud user. revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from user ALIYUN$5527xxxxxxxx5788; -
Exemplo 2: Revogue do usuário RAM Allen as permissões para ler os metadados e dados de uma tabela.
--Enter the test_project_a project. use test_project_a; --Revoke permissions from Allen. revoke Describe, Select on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; -
Exemplo 3: Revogue da usuária RAM Alice as permissões para ler e atualizar um recurso.
--Enter the test_project_a project. use test_project_a; --Revoke permissions from Alice. revoke Read, Write on resource udtf.jar from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650; -
Exemplo 4: Revogue do usuário RAM Tom as permissões para ler e atualizar uma função.
--Enter the test_project_a project. use test_project_a; --Revoke permissions from Tom. revoke Read, Write on function udf_test from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651; -
Exemplo 5: Revogue do usuário RAM Tom todas as permissões de operação em uma instância.
--Enter the test_project_a project. use test_project_a; --Revoke permissions from Tom. revoke All on instance 202112300224**** from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
-
-
Conceda a permissão Download a um usuário
Conceda a um usuário permissão para baixar os dados de uma tabela, recurso, função ou instância.
-
Formato do comando
grant Download on {Table|Resource|Function|Instance} <object_name> to USER <user_name>; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
object_name
Sim
Nome do objeto no qual as permissões são concedidas. Obtenha o nome das seguintes maneiras:
Nome da tabela: Execute o comando
show tables;no MaxCompute client para obter o nome da tabela ou visualização.Nome do recurso: Use o MaxCompute client para executar o comando
list resources;e obter o nome do recurso.Nome da função: Execute o comando
list functions;no MaxCompute client para obter o nome da função.Nome da instância: No MaxCompute client, execute o comando
show instances;para obter o ID da instância.
user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute ao qual você deseja atribuir a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Execute o comando
list users;no MaxCompute client para visualizar as informações do usuário. -
Exemplos
Suponha que o controle de permissão de download esteja ativado para o projeto
test_project_a. Conceda ao usuário Allen permissão para baixar dados de uma tabela específica. O comando a seguir fornece um exemplo.--Enter the test_project_a project. use test_project_a; --Grant permissions to Allen. grant Download on table sale_detail to USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
-
-
Revogue a permissão Download de um usuário
Revogue de um usuário a permissão para baixar os dados de uma tabela, recurso, função ou instância.
-
Formato do comando
revoke Download on {Table|Resource|Function|Instance} <object_name> from USER <user_name>; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
object_name
Sim
Nome do objeto do qual as permissões são revogadas. Obtenha o nome das seguintes maneiras:
Nome da tabela: Execute o comando
show tables;no MaxCompute client para obter o nome da tabela ou visualização.Nome do recurso: Obtenha o nome do recurso executando o comando
list resources;no MaxCompute client.Nome da função: Use o MaxCompute client para executar o comando
list functions;e obter o nome da função.Nome da instância: Execute o comando
show instances;no MaxCompute client para obter o ID da instância.
user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute do qual você deseja revogar a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Use o MaxCompute client para executar o comando
list users;e visualizar as informações do usuário. -
Exemplos
Revogue do usuário Allen a permissão para baixar dados de uma tabela específica. O comando a seguir fornece um exemplo.
--Enter the test_project_a project. use test_project_a; --Revoke permissions from Allen. revoke Download on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
-
-
Conceda permissões de acesso a dados com alto nível de sensibilidade a um usuário
Conceda a um usuário permissões de acesso a dados com alto nível de sensibilidade usando o mecanismo de autorização baseado em rótulo.
-
Formato do comando
grant Label <number> on table <table_name> [(<column_list>)] to USER <user_name> [with exp <days>]; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
number
Sim
Nível máximo de sensibilidade de dados que o usuário ou função pode acessar.
O valor varia de 0 a 9, correspondendo aos rótulos de nível de sensibilidade de dados.
table_name
Sim
Nome da tabela ou visualização de destino.
Execute o comando
show tables;no MaxCompute client para obter o nome de uma tabela ou visualização.column_list
Não
Para conceder permissões de acesso a colunas específicas na tabela ou visualização de destino, configure este parâmetro. É possível especificar vários nomes de coluna para uma única autorização. Separe os nomes das colunas com vírgulas (,).
user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute ao qual você deseja atribuir a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Use o MaxCompute client para executar o comando
list users;e visualizar as informações do usuário.days
Não
Tempo de expiração da permissão, em dias. O valor pode variar de 0 a 263-1. Se você não especificar esse parâmetro, o tempo de expiração padrão será de 180 dias.
-
Exemplos
Suponha que, no projeto
test_project_a, o usuário Allen tenha um nível de rótulo de acesso permitido igual a 2. Conceda a esse usuário permissão para acessar dados com nível máximo de sensibilidade 4 na tabelasale_detail. O comando a seguir fornece um exemplo.--Enter the test_project_a project. use test_project_a; --Grant permissions to the user Allen. grant Label 4 on table sale_detail to USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
-
-
Revogue permissões de acesso a dados com alto nível de sensibilidade de um usuário
-
Formato do comando
revoke Label <number> on table <table_name> [(<column_list>)] from USER <user_name>; -
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
number
Sim
Nível máximo de sensibilidade de dados para o qual você deseja revogar as permissões de acesso do usuário ou função.
O valor varia de 0 a 9, correspondendo aos rótulos de nível de sensibilidade de dados.
table_name
Sim
Nome da tabela ou visualização de destino da qual você deseja revogar as permissões de acesso.
Execute o comando
show tables;no MaxCompute client para obter nomes de tabelas ou visualizações.column_list
Não
Para revogar permissões de acesso a colunas específicas na tabela ou visualização de destino, configure este parâmetro. É possível especificar vários nomes de coluna para uma única autorização. Separe os nomes das colunas com vírgulas (,).
user_name
Sim
Nome do usuário adicionado ao projeto MaxCompute do qual você deseja revogar a função. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Use o MaxCompute client para executar o comando
list users;e visualizar as informações do usuário. -
Exemplos
Revogue do usuário Allen a permissão para acessar dados com nível máximo de sensibilidade 4 na tabela
sale_detail. O comando a seguir fornece um exemplo.--Enter the test_project_a project. use test_project_a; --Revoke permissions from the user Allen. revoke Label 4 on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
-
Limpe completamente as informações de permissão restantes de um usuário excluído
Depois que um usuário é removido de um projeto, seus dados de permissão, como ACL, política e permissões de rótulo, permanecem no projeto. Se esse usuário for adicionado novamente ao projeto, ele recuperará automaticamente suas permissões originais. Esse recurso é útil caso um usuário seja removido acidentalmente. No entanto, também pode representar um risco de segurança se um usuário for removido intencionalmente e readicionado com uma identidade diferente.
Para resolver isso, o MaxCompute oferece um recurso para limpar as permissões do usuário. Se um usuário não estiver mais em um projeto, mas ainda tiver permissões residuais de ACL, política ou rótulo, o proprietário do projeto ou um usuário com a função Admin ou Super_Administrator poderá executar o seguinte comando para limpar essas informações.
Formato do comando
purge privs from user <user_name>;
-
Parâmetros
Nome do parâmetro
Obrigatório
Descrição
user_name
Sim
Nome do usuário removido do projeto MaxCompute cujas informações de permissão restantes você deseja limpar. O formato é:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
Se você executar este comando para um usuário que não foi removido do projeto, o erro "Principal <username> still exist in the project" será retornado. Primeiro, execute o comando remove user <user_name> para remover o usuário do projeto.
Próximas etapas
Após conceder permissões a um usuário, consulte as informações de autorização dele. Para mais informações, consulte Query user permission information.