Après avoir ajouté un utilisateur à un projet MaxCompute, vous devez lui accorder des autorisations. Un utilisateur ne peut effectuer des opérations dans le projet qu'après avoir obtenu les autorisations requises. Dans MaxCompute, vous pouvez accorder des autorisations aux utilisateurs en leur attribuant des rôles ou en leur octroyant des autorisations directement. Cette rubrique décrit la syntaxe des commandes d'autorisation des utilisateurs et fournit des exemples.
Accorder des autorisations à un utilisateur en attachant un rôle au niveau du projet
MaxCompute recommande d'attribuer aux utilisateurs des rôles personnalisés ou des rôles administratifs intégrés au niveau du projet. Cette approche permet aux utilisateurs de bénéficier des mêmes autorisations que le rôle et simplifie le processus de modification ou de révocation des autorisations pour plusieurs utilisateurs simultanément.
Pour ajouter des utilisateurs à un projet MaxCompute, consultez la section Planification et gestion des utilisateurs.
Lorsqu'un utilisateur est supprimé d'un projet, vous devez rapidement effacer les informations d'autorisation résiduelles. Pour plus d'informations, consultez la section Effacer les informations d'autorisation résiduelles d'un utilisateur supprimé.
Attribuer un rôle au niveau du projet MaxCompute à un utilisateur
Vous pouvez attribuer un rôle intégré ou personnalisé au niveau du projet à un utilisateur. L'utilisateur hérite alors des autorisations associées à ce rôle.
-
Format de la commande
grant <role_name> to <user_name>; -
Notes
Plusieurs utilisateurs peuvent se voir attribuer le même rôle au niveau du projet. Un seul utilisateur peut également recevoir plusieurs rôles au niveau du projet.
-
Paramètres
Nom du paramètre
Obligatoire
Description
role_name
Oui
Le nom du rôle à attribuer à l'utilisateur.
Vous pouvez exécuter la commande
list roles;dans le client MaxCompute pour afficher les informations sur les rôles.user_name
Oui
Le nom de l'utilisateur qui a été ajouté au projet MaxCompute et auquel vous souhaitez attribuer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Vous pouvez exécuter la commande
list users;dans le client MaxCompute pour afficher les informations sur les utilisateurs. -
Exemples
Attachez le rôle au niveau du projet
Workerau compte Alibaba Cloud ALIYUN$5527xxxxxxxx5788, à l'utilisateur RAM RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649 et au rôle RAM RAM$5527xxxxxxxx5788:role/ram_role dans le projet 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`;
Révoquer un rôle au niveau du projet MaxCompute d'un utilisateur
Vous pouvez détacher un rôle d'un utilisateur. L'utilisateur perd alors les autorisations associées à ce rôle.
-
Format de la commande
revoke <role_name> from <user_name>; -
Paramètres
Nom du paramètre
Obligatoire
Description
role_name
Oui
Le nom du rôle à révoquer.
Vous pouvez exécuter la commande
list roles;dans le client MaxCompute pour obtenir le nom du rôle.user_name
Oui
Le nom de l'utilisateur dont vous souhaitez révoquer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Vous pouvez exécuter la commande
list users;dans le client MaxCompute pour obtenir le nom d'utilisateur. -
Exemples
Révoquez le rôle
Workerdes utilisateurs ALIYUN$5527xxxxxxxx5788,RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649et 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`;
Scénarios d'autorisation courants et exemples de syntaxe
Scénario d'autorisation | Méthode d'autorisation | Autorisateur | Point d'entrée d'autorisation |
Accorder à un utilisateur des autorisations d'opération sur un objet à l'aide d'un rôle | Accordez d'abord des autorisations au rôle en utilisant le contrôle d'accès basé sur les listes de contrôle d'accès (ACL) ou le contrôle d'accès basé sur des politiques. Ensuite, attribuez le rôle à l'utilisateur. | Consultez la colonne Autorisateurs pris en charge dans le résumé des autorisations. | |
Révoquer les autorisations d'opération sur un objet accordées à un utilisateur à l'aide d'un rôle | |||
Accorder à un utilisateur l'autorisation de téléchargement à l'aide d'un rôle | Accordez d'abord des autorisations au rôle en utilisant le contrôle des autorisations de téléchargement. Ensuite, attribuez le rôle à l'utilisateur. | ||
Révoquer l'autorisation de téléchargement accordée à un utilisateur à l'aide d'un rôle | |||
Accorder à un utilisateur des autorisations d'accès aux données ayant le même niveau de sensibilité élevé à l'aide d'un rôle | Accordez d'abord des autorisations au rôle en utilisant le contrôle d'accès basé sur les étiquettes. Ensuite, attribuez le rôle à l'utilisateur. | ||
Révoquer les autorisations d'accès aux données ayant le même niveau de sensibilité élevé accordées à un utilisateur à l'aide d'un rôle |
Accorder à un utilisateur des autorisations d'opération sur un objet à l'aide d'un rôle
Vous pouvez accorder des autorisations à un rôle en utilisant le mécanisme d'autorisation basé sur les ACL ou sur les politiques. Ensuite, vous pouvez attribuer le rôle à plusieurs utilisateurs.
Pour plus d'informations sur la manière d'accorder des autorisations à un rôle, consultez la section Accorder des autorisations d'opération sur un objet à un rôle.
Supposons que ALIYUN$5527xxxxxxxx5789 soit le propriétaire du projet test_project_a. Allen, Alice et Tom sont des utilisateurs RAM de ALIYUN$5527xxxxxxxx5789. Vous devez accorder aux trois utilisateurs RAM des autorisations pour créer des tables, des modèles, des fonctions et des instances, ainsi que pour afficher la liste de tous les types d'objets dans le projet. La commande suivante fournit un exemple.
--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;
Révoquer les autorisations d'opération sur un objet accordées à un utilisateur à l'aide d'un rôle
Vous pouvez révoquer l'autorisation de l'une des manières suivantes :
-
Révoquer les autorisations du rôle
Tous les utilisateurs auxquels ce rôle est attribué perdront les autorisations correspondantes.
-
Révoquer le rôle d'un utilisateur spécifique
Seul l'utilisateur dont le rôle est révoqué perd les autorisations. Les autorisations des autres utilisateurs ne sont pas affectées.
Supposons que ALIYUN$5527xxxxxxxx5789 soit le propriétaire du projet test_project_a. Allen, Alice et Tom sont des utilisateurs RAM appartenant au compte ALIYUN$5527xxxxxxxx5789. Les trois utilisateurs RAM ont reçu des autorisations pour créer des tables, des modèles, des fonctions et des instances, ainsi que pour afficher la liste de tous les types d'objets dans le projet via le rôle Worker. Les exemples suivants montrent les commandes que vous pouvez utiliser pour révoquer les autorisations d'opération sur les objets.
-
Méthode 1 : Révoquer les autorisations du rôle
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éthode 2 : Révoquer le rôle
Workerd'un utilisateur.--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;
Accorder à un utilisateur l'autorisation de téléchargement à l'aide d'un rôle
Vous pouvez accorder des autorisations à un rôle en utilisant le mécanisme d'autorisation de téléchargement. Ensuite, vous pouvez attribuer le rôle à l'utilisateur.
Pour plus d'informations sur la manière d'accorder des autorisations à un rôle, consultez la section Accorder l'autorisation de téléchargement à un rôle.
Supposons que ALIYUN$5527xxxxxxxx5789 soit le propriétaire du projet test_project_a, et qu'Allen, Alice et Tom soient des utilisateurs RAM appartenant à ALIYUN$5527xxxxxxxx5789. Vous devez accorder aux trois utilisateurs RAM des autorisations pour télécharger des données à partir d'une table spécifiée. La commande suivante fournit un exemple.
--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;
Révoquer l'autorisation de téléchargement accordée à un utilisateur à l'aide d'un rôle
Vous pouvez révoquer l'autorisation de l'une des manières suivantes :
-
Révoquer les autorisations du rôle
Tous les utilisateurs auxquels ce rôle est attribué perdront les autorisations correspondantes.
-
Révoquer le rôle d'un utilisateur spécifique
Seul l'utilisateur dont le rôle est révoqué perd les autorisations. Les autorisations des autres utilisateurs ne sont pas affectées.
Supposons que ALIYUN$5527xxxxxxxx5789 soit le propriétaire du projet test_project_a. Allen, Alice et Tom sont des utilisateurs RAM rattachés au compte ALIYUN$5527xxxxxxxx5789. Vous avez accordé à ces trois utilisateurs l'autorisation de télécharger toutes les données de la table en leur attribuant le rôle Worker. Pour révoquer l'autorisation Download (Téléchargement) de ces utilisateurs RAM, vous pouvez utiliser l'une des méthodes suivantes :
-
Méthode 1 : Révoquez les permissions du rôle
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éthode 2 : Révoquez le rôle
Workerd'un utilisateur.--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;
Accorder à un utilisateur des permissions d'accès aux données de même niveau de sensibilité élevée via un rôle
Vous pouvez accorder des permissions à un rôle en utilisant le mécanisme d'autorisation basé sur les libellés ou sur les politiques. Ensuite, attribuez ce rôle à plusieurs utilisateurs.
Pour plus d'informations sur l'octroi de permissions à un rôle, consultez la rubrique Accorder des permissions d'accès aux données de niveau de sensibilité élevé à un rôle.
Supposons que ALIYUN$5527xxxxxxxx5789 soit le propriétaire du projet test_project_a, et qu'Allen, Alice et Tom soient des utilisateurs RAM du compte ALIYUN$5527xxxxxxxx5789. Le niveau d'accès aux données de ces utilisateurs RAM est 2. Pour leur accorder des permissions d'accès aux données de niveau de sensibilité 4 dans une table de destination au sein du projet, utilisez la commande suivante.
--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;
Révoquer les permissions d'accès aux données de même niveau de sensibilité élevée accordées à un utilisateur via un rôle
Vous pouvez révoquer l'autorisation de l'une des manières suivantes :
-
Révoquez les permissions du rôle
Tous les utilisateurs auxquels ce rôle est attribué perdront les permissions correspondantes.
-
Révoquez le rôle d'un utilisateur spécifique
Seul l'utilisateur dont le rôle est révoqué perd les permissions. Les permissions des autres utilisateurs ne sont pas affectées.
Supposons que ALIYUN$5527xxxxxxxx5789 soit le propriétaire du projet test_project_a. Allen, Alice et Tom sont des utilisateurs RAM appartenant au compte ALIYUN$5527xxxxxxxx5789. Ces trois utilisateurs RAM ont reçu des permissions d'accès aux données de niveau de sensibilité 4 dans une table cible du projet. Pour révoquer les permissions d'accès à ces données hautement sensibles, vous pouvez utiliser les exemples de commandes suivants.
-
Méthode 1 : Révoquez les permissions du rôle
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éthode 2 : Révoquez le rôle
Workerd'un utilisateur.--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;
Accorder des autorisations directement à un utilisateur
MaxCompute permet également d'accorder des autorisations directement aux utilisateurs. Les sections suivantes décrivent les scénarios d'autorisation courants et fournissent des exemples de syntaxe.
Pour ajouter des utilisateurs à un projet MaxCompute, consultez la rubrique Planification et gestion des utilisateurs.
Lorsqu'un utilisateur est supprimé d'un projet, vous devez rapidement effacer les informations d'autorisation résiduelles. Pour plus d'informations, consultez la section Effacer les informations d'autorisation résiduelles d'un utilisateur supprimé.
Scénario d'autorisation | Méthode d'autorisation | Autorisateur | Point d'entrée d'autorisation |
Accorder à un utilisateur des autorisations d'opération sur un objet | Consultez la colonne Autorisateurs pris en charge du résumé des autorisations. | ||
Révoquer les autorisations d'opération sur un objet d'un utilisateur | |||
Accorder l'autorisation Download à un utilisateur | |||
Révoquer l'autorisation Download d'un utilisateur | |||
Accorder à un utilisateur des autorisations d'accès aux données de niveau de sensibilité élevé | |||
Révoquer les autorisations d'accès aux données de niveau de sensibilité élevé d'un utilisateur |
Accorder à un utilisateur des autorisations d'opération sur un objet
Vous pouvez accorder à un utilisateur des autorisations d'opération sur un projet, une table, un modèle, une ressource, une fonction ou une instance en utilisant le mécanisme d'autorisation basé sur les ACL.
-
Accorder à un utilisateur des autorisations d'opération sur un projet
-
Format de la commande
grant Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All on project <project_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Paramètres
Nom du paramètre
Obligatoire
Description
project_name
Oui
Nom du projet. Connectez-vous à la console MaxCompute, changez de région dans le coin supérieur gauche, puis obtenez le nom spécifique du projet MaxCompute dans l'onglet Gestion des projets.
user_name
Oui
Nom de l'utilisateur ajouté au projet MaxCompute et auquel vous souhaitez attribuer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Exécutez la commande
list users;dans le client MaxCompute pour afficher les informations sur les utilisateurs.privilegeproperties
conditions
Non
Conditions utilisées pour le contrôle d'accès basé sur les politiques, telles que la source d'un message de requête et la méthode d'accès. Le format est
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Consultez la section Conditions pour obtenir la liste des valeurs var_name et Operation prises en charge.days
Non
Durée de validité de l'autorisation, en jours. Si vous ne spécifiez pas ce paramètre, l'autorisation est valide à long terme par défaut. Si vous spécifiez ce paramètre, MaxCompute efface automatiquement les informations d'autorisation après l'expiration de l'autorisation.
-
-
Accorder à un utilisateur des autorisations d'opération sur une table
-
Format de la commande
grant Describe|Select|Alter|Update|Drop|ShowHistory|All on table <table_name> [(<column_list>)] to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Paramètres
Nom du paramètre
Obligatoire
Description
table_name
Oui
Nom de la table : exécutez la commande
show tables;dans le client MaxCompute pour obtenir le nom d'une table ou d'une vue.user_name
Oui
Nom de l'utilisateur ajouté au projet MaxCompute et auquel vous souhaitez attribuer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Exécutez la commande
list users;dans le client MaxCompute pour afficher les informations sur les utilisateurs.privilegeproperties
conditions
Non
Conditions utilisées pour le contrôle d'accès basé sur les politiques, telles que la source d'un message de requête et la méthode d'accès. Le format est
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Pour obtenir la liste des valeurs var_name et Operation prises en charge, consultez la section Conditions.days
Non
Durée de validité de l'autorisation, en jours. Si vous ne spécifiez pas ce paramètre, l'autorisation est valide à long terme par défaut. Si vous spécifiez ce paramètre, MaxCompute efface automatiquement les informations d'autorisation après l'expiration de l'autorisation.
-
-
Accorder à un utilisateur des autorisations d'opération sur un modèle
-
Format de la commande
grant Describe|Execute|Alter|Drop|All on MODEL <model_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Paramètres
model_name : obligatoire. Nom du modèle. Obtenez le nom du modèle en exécutant la commande
list models;dans le client MaxCompute.
-
-
Accorder à un utilisateur des autorisations d'opération sur une ressource
-
Format de la commande
grant Read|Write|Delete|All on resource <resource_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Paramètres
Nom du paramètre
Obligatoire
Description
resource_name
Oui
Nom de la ressource : utilisez le client MaxCompute pour exécuter la commande
list resources;afin d'obtenir le nom de la ressource.user_name
Oui
Nom de l'utilisateur ajouté au projet MaxCompute et auquel vous souhaitez attribuer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Exécutez la commande
list users;dans le client MaxCompute pour afficher les informations sur les utilisateurs.privilegeproperties
conditions
Non
Conditions utilisées pour le contrôle d'accès basé sur les politiques, telles que la source d'un message de requête et la méthode d'accès. Le format est
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Pour obtenir la liste des valeurs var_name et Operation prises en charge, consultez la section Conditions.days
Non
Durée de validité de l'autorisation, en jours. Si vous ne spécifiez pas ce paramètre, l'autorisation est valide à long terme par défaut. Si vous spécifiez ce paramètre, MaxCompute efface automatiquement les informations d'autorisation après l'expiration de l'autorisation.
-
-
Accorder à un utilisateur des autorisations d'opération sur une fonction
-
Format de la commande
grant Read|Write|Delete|Execute|All on function <function_name> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Paramètres
Nom du paramètre
Obligatoire
Description
function_name
Oui
Nom de la fonction : obtenez le nom de la fonction en exécutant la commande
list functions;dans le client MaxCompute.user_name
Oui
Nom de l'utilisateur ajouté au projet MaxCompute et auquel vous souhaitez attribuer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Exécutez la commande
list users;dans le client MaxCompute pour afficher les informations sur les utilisateurs.privilegeproperties
conditions
Non
Conditions utilisées pour le contrôle d'accès basé sur les politiques, telles que la source d'un message de requête et la méthode d'accès. Le format est
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Pour obtenir la liste des valeurs var_name et Operation prises en charge, consultez la section Conditions.days
Non
Durée de validité de l'autorisation, en jours. Si vous ne spécifiez pas ce paramètre, l'autorisation est valide à long terme par défaut. Si vous spécifiez ce paramètre, MaxCompute efface automatiquement les informations d'autorisation après l'expiration de l'autorisation.
-
-
Accorder à un utilisateur des autorisations d'opération sur une instance
-
Format de la commande
grant Read|Write|All on instance <instance_id> to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")]; -
Paramètres
Nom du paramètre
Obligatoire
Description
instance_id
Oui
ID de l'instance : exécutez la commande
show instances;dans le client MaxCompute pour obtenir l'ID de l'instance.user_name
Oui
Nom de l'utilisateur ajouté au projet MaxCompute et auquel vous souhaitez attribuer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Exécutez la commande
list users;dans le client MaxCompute pour afficher les informations sur les utilisateurs.privilegeproperties
conditions
Non
Conditions utilisées pour le contrôle d'accès, telles que la source d'un message de requête et la méthode d'accès. Le format est
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... Pour obtenir la liste des valeurs var_name et Operation prises en charge, consultez la section Conditions.days
Non
Durée de validité de l'autorisation, en jours. Si vous ne spécifiez pas ce paramètre, l'autorisation est valide à long terme par défaut. Si vous spécifiez ce paramètre, MaxCompute efface automatiquement les informations d'autorisation après l'expiration de l'autorisation.
-
-
Exemples
Supposons que ALIYUN$5527xxxxxxxx5789 est le propriétaire du projet
test_project_a. Allen, Alice et Tom sont des utilisateurs RAM appartenant au compte Alibaba Cloud ALIYUN$5527xxxxxxxx5789. RAM$5527xxxxxxxx5789:role/ram_role est un rôle RAM appartenant au compte Alibaba Cloud ALIYUN$5527xxxxxxxx5789. ALIYUN$5527xxxxxxxx5788 est un autre compte Alibaba Cloud à ajouter au projettest_project_a.-
Exemple 1 : accorder au compte Alibaba Cloud Kate les autorisations de créer des tables, des fonctions et des instances, ainsi que de consulter la liste de tous les types d'objets dans le projet.
--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; -
Exemple 2 : accorder à l'utilisateur RAM Allen et à un rôle RAM les autorisations de créer des tables, de consulter tous les types d'objets dans le projet, ainsi que de lire les métadonnées et les données d'une table.
--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`; -
Exemple 3 : accorder à l'utilisateur RAM Alice les autorisations de lecture et de mise à jour d'une ressource.
--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; -
Exemple 4 : accorder à l'utilisateur RAM Tom les autorisations de lecture et de mise à jour d'une fonction.
--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; -
Exemple 5 : accorder à l'utilisateur RAM Tom toutes les autorisations d'opération sur une instance.
--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;
-
Révoquer les autorisations d'opération sur un objet d'un utilisateur
Vous pouvez révoquer les autorisations d'opération sur un projet, une table, un modèle, une ressource, une fonction ou une instance d'un utilisateur.
-
Révoquer les autorisations d'opération sur un projet d'un utilisateur
-
Format de la commande
revoke Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All on project <project_name> from USER <user_name>; -
Paramètres
Parameter
Required
Description
project_name
Yes
The project name. You can log on to the MaxCompute console, switch the region in the upper-left corner, and then obtain the specific MaxCompute project name on the Project management tab.
user_name
Yes
The name of the user who has been added to the MaxCompute project and from whom you want to revoke the role. The format is as follows:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
You can execute the
list users;command in the MaxCompute client to view user information.privilegeproperties
conditions
No
The conditions used for policy-based access control, such as the source of a request message and the access method. The format is
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... For the list of supported var_name and Operation values, see Conditions.days
No
The expiration time of the permission, in days. If you do not specify this parameter, the permission is valid for a long term by default. If you specify this parameter, MaxCompute automatically clears the permission information after the permission expires.
-
-
Révoquer les autorisations d'opération sur une table d'un utilisateur
-
Format de la commande
revoke Describe|Select|Alter|Update|Drop|ShowHistory|All on table <table_name> [(<column_list>)] from USER <user_name>; -
Paramètres
Parameter name
Required
Description
table_name
Yes
Table name: You can obtain the name of a table or view by executing the
show tables;command in the MaxCompute client.user_name
Yes
The name of the user who has been added to the MaxCompute project and from whom you want to revoke the role. The format is as follows:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
You can execute the
list users;command in the MaxCompute client to view user information.privilegeproperties
conditions
No
The conditions used for policy-based access control, such as the source of a request message and the access method. The format is
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... For a list of supported var_name and Operation values, see Conditions.days
No
The expiration time of the permission, in days. If you do not specify this parameter, the permission is valid for a long term by default. If you specify this parameter, MaxCompute automatically clears the permission information after the permission expires.
-
-
Révoquer les autorisations d'opération sur un modèle d'un utilisateur
-
Format de la commande
revoke Describe|Execute|Alter|Drop|All on MODEL <model_name> from USER <user_name>; -
Paramètres
model_name : obligatoire. Nom du modèle. Vous pouvez obtenir le nom du modèle en exécutant la commande
list models;dans le client MaxCompute.
-
-
Révoquer les autorisations d'opération sur une ressource d'un utilisateur
-
Format de la commande
revoke Read|Write|Delete|All on resource <resource_name> from USER <user_name>; -
Paramètres
Parameter Name
Required
Description
resource_name
Yes
You can obtain the resource name by executing the
list resources;command on the MaxCompute client.user_name
Yes
The name of the user who has been added to the MaxCompute project and from whom you want to revoke the role. The format is as follows:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
You can execute the
list users;command in the MaxCompute client to view user information.privilegeproperties
conditions
No
The conditions used for policy-based access control, such as the source of a request message and the access method. The format is
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... For a list of supported var_name and Operation, see Conditions.days
No
The expiration time of the permission, in days. If you do not specify this parameter, the permission is valid for a long term by default. If you specify this parameter, MaxCompute automatically clears the permission information after the permission expires.
-
-
Révoquer les autorisations d'opération sur une fonction d'un utilisateur
-
Format de la commande
revoke Read|Write|Delete|Execute|All on function <function_name> from USER <user_name>; -
Paramètres
Parameter Name
Required
Description
function_name
Yes
Function name: You can obtain the function name by executing the
list functions;command in the MaxCompute client.user_name
Yes
The name of the user who has been added to the MaxCompute project and from whom you want to revoke the role. The format is as follows:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
You can execute the
list users;command in the MaxCompute client to view user information.privilegeproperties
conditions
No
The conditions used for policy-based access control, such as the source of a request message and the access method. The format is
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... See Conditions for a list of supported var_name and Operation.days
No
The expiration time of the permission, in days. If you do not specify this parameter, the permission is valid for a long term by default. If you specify this parameter, MaxCompute automatically clears the permission information after the permission expires.
-
-
Révoquer les autorisations d'opération sur une instance d'un utilisateur
-
Format de la commande
revoke Read|Write|All on instance <instance_id> from USER <user_name>; -
Paramètres
Parameter Name
Required
Description
instance_id
Yes
Instance ID: You can obtain the instance ID by executing the
show instances;command in the MaxCompute client.user_name
Yes
The name of the user who has been added to the MaxCompute project and from whom you want to revoke the role. The format is as follows:
Alibaba Cloud account: ALIYUN$<account_id>
RAM user: RAM$<account_id>:<RAM_user_UID>
RAM role:
RAM$<account_id>:role/<RAM role name>
You can use the MaxCompute client to execute the
list users;command to view user information.privilegeproperties
conditions
No
The conditions used for policy-based access control, such as the source of a request message and the access method. The format is
"<var_name> <Operation> constant" and "<var_name> <Operation> constant" and .... For a list of supported var_name and Operation values, see Conditions.days
No
The expiration time of the permission, in days. If you do not specify this parameter, the permission is valid for a long term by default. If you specify this parameter, MaxCompute automatically clears the permission information after the permission expires.
-
-
Exemples
Révoquez les autorisations d'opération sur les objets qui ont été accordées à l'utilisateur Alibaba Cloud et aux utilisateurs RAM. La commande suivante fournit un exemple.
-
Exemple 1 : Révoquez les autorisations de création de tables, de fonctions et d'instances, ainsi que l'autorisation d'affichage de la liste de tous les types d'objets dans le projet pour Kate.
--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; -
Exemple 2 : Révoquez les autorisations de lecture des métadonnées et des données d'une table pour l'utilisateur RAM Allen.
--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; -
Exemple 3 : Révoquez les autorisations de lecture et de mise à jour d'une ressource pour l'utilisateur RAM Alice.
--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; -
Exemple 4 : Révoquez les autorisations de lecture et de mise à jour d'une fonction pour l'utilisateur RAM Tom.
--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; -
Exemple 5 : Révoquez toutes les autorisations d'opération sur une instance pour l'utilisateur RAM Tom.
--Enter the test_project_a project. use test_project_a; --Revoke permissions from Tom. revoke All on instance 202112300224**** from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
-
-
Accorder l'autorisation Download à un utilisateur
Vous pouvez accorder à un utilisateur l'autorisation de télécharger les données d'une table, d'une ressource, d'une fonction ou d'une instance.
-
Format de la commande
grant Download on {Table|Resource|Function|Instance} <object_name> to USER <user_name>; -
Paramètres
Nom du paramètre
Obligatoire
Description
object_name
Oui
Le nom de l'objet sur lequel les autorisations sont accordées. Vous pouvez obtenir le nom de l'une des manières suivantes :
Nom de la table : exécutez la commande
show tables;sur le client MaxCompute pour obtenir le nom de la table ou de la vue.Nom de la ressource : utilisez le client MaxCompute pour exécuter la commande
list resources;afin d'obtenir le nom de la ressource.Nom de la fonction : exécutez la commande
list functions;dans le client MaxCompute pour obtenir le nom de la fonction.Nom de l'instance : dans le client MaxCompute, exécutez la commande
show instances;pour obtenir l'ID de l'instance.
user_name
Oui
Le nom de l'utilisateur qui a été ajouté au projet MaxCompute et auquel vous souhaitez attribuer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Vous pouvez exécuter la commande
list users;dans le client MaxCompute pour afficher les informations sur les utilisateurs. -
Exemples
Supposons que le contrôle des autorisations de téléchargement soit activé pour le projet
test_project_a. Vous devez accorder à l'utilisateur Allen l'autorisation de télécharger les données d'une table spécifiée. La commande suivante fournit un exemple.--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;
-
-
Révoquer l'autorisation Download d'un utilisateur
Vous pouvez révoquer l'autorisation de télécharger les données d'une table, d'une ressource, d'une fonction ou d'une instance d'un utilisateur.
-
Format de la commande
revoke Download on {Table|Resource|Function|Instance} <object_name> from USER <user_name>; -
Paramètres
Nom du paramètre
Obligatoire
Description
object_name
Oui
Le nom de l'objet dont les autorisations sont révoquées. Vous pouvez obtenir le nom de l'une des manières suivantes :
Nom de la table : exécutez la commande
show tables;dans le client MaxCompute pour obtenir le nom de la table ou de la vue.Nom de la ressource : obtenez le nom de la ressource en exécutant la commande
list resources;dans le client MaxCompute.Nom de la fonction : utilisez le client MaxCompute pour exécuter la commande
list functions;afin d'obtenir le nom de la fonction.Nom de l'instance : exécutez la commande
show instances;dans le client MaxCompute pour obtenir l'ID de l'instance.
user_name
Oui
Le nom de l'utilisateur qui a été ajouté au projet MaxCompute et dont vous souhaitez révoquer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Vous pouvez utiliser le client MaxCompute pour exécuter la commande
list users;afin d'afficher les informations sur les utilisateurs. -
Exemples
Révoquez l'autorisation de télécharger les données d'une table spécifiée de l'utilisateur Allen. La commande suivante fournit un exemple.
--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;
-
-
Accorder à un utilisateur des autorisations d'accès aux données avec un niveau de sensibilité élevé
Vous pouvez accorder à un utilisateur des autorisations d'accès aux données avec un niveau de sensibilité élevé en utilisant le mécanisme d'autorisation basé sur les libellés.
-
Format de la commande
grant Label <number> on table <table_name> [(<column_list>)] to USER <user_name> [with exp <days>]; -
Paramètres
Nom du paramètre
Obligatoire
Description
number
Oui
Le niveau de sensibilité des données le plus élevé auquel l'utilisateur ou le rôle peut accéder.
La valeur varie de 0 à 9, correspondant aux libellés de niveau de sensibilité des données.
table_name
Oui
Le nom de la table ou de la vue de destination.
Vous pouvez exécuter la commande
show tables;dans le client MaxCompute pour obtenir le nom d'une table ou d'une vue.column_list
Non
Pour accorder des autorisations d'accès sur des colonnes spécifiées dans la table ou la vue de destination, configurez ce paramètre. Vous pouvez spécifier plusieurs noms de colonnes pour une seule autorisation. Séparez les noms de colonnes par des virgules (,).
user_name
Oui
Le nom de l'utilisateur qui a été ajouté au projet MaxCompute et auquel vous souhaitez attribuer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Vous pouvez utiliser le client MaxCompute pour exécuter la commande
list users;afin d'afficher les informations sur les utilisateurs.days
Non
La durée d'expiration de l'autorisation, en jours. La valeur peut aller de 0 à 263-1. Si vous ne spécifiez pas ce paramètre, la durée d'expiration par défaut est de 180 jours.
-
Exemples
Supposons que, dans le projet
test_project_a, l'utilisateur Allen dispose d'un niveau d'étiquette d'accès autorisé de 2. Vous devez accorder à cet utilisateur l'autorisation d'accéder aux données dont le niveau de sensibilité maximal est de 4 dans la tablesale_detail. La commande suivante illustre cette opération.--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;
-
-
Révoquer les autorisations d'accès aux données hautement sensibles d'un utilisateur
-
Syntaxe de la commande
revoke Label <number> on table <table_name> [(<column_list>)] from USER <user_name>; -
Paramètres
Nom du paramètre
Obligatoire
Description
number
Oui
Niveau de sensibilité des données le plus élevé pour lequel vous souhaitez révoquer les autorisations d'accès de l'utilisateur ou du rôle.
La valeur varie de 0 à 9, correspondant aux étiquettes de niveau de sensibilité des données.
table_name
Oui
Nom de la table ou de la vue cible dont vous souhaitez révoquer les autorisations d'accès.
Vous pouvez exécuter la commande
show tables;dans le client MaxCompute pour obtenir les noms des tables ou des vues.column_list
Non
Configurez ce paramètre pour révoquer les autorisations d'accès sur des colonnes spécifiques de la table ou de la vue cible. Vous pouvez spécifier plusieurs noms de colonnes pour une seule autorisation. Séparez les noms de colonnes par des virgules (,).
user_name
Oui
Nom de l'utilisateur ajouté au projet MaxCompute et dont vous souhaitez révoquer le rôle. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Vous pouvez utiliser le client MaxCompute pour exécuter la commande
list users;afin de consulter les informations relatives aux utilisateurs. -
Exemples
Révoquez l'autorisation d'accès aux données dont le niveau de sensibilité maximal est de 4 dans la table
sale_detailpour l'utilisateur Allen. La commande suivante illustre cette opération.--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;
-
Purger complètement les informations d'autorisation restantes d'un utilisateur supprimé
Lorsqu'un utilisateur est retiré d'un projet, ses données d'autorisation, telles que les autorisations ACL, de politique et d'étiquette, restent dans le projet. Si cet utilisateur est rajouté au projet, il récupère automatiquement ses autorisations d'origine. Cette fonctionnalité s'avère utile en cas de suppression accidentelle d'un utilisateur. Toutefois, elle peut également présenter un risque de sécurité si un utilisateur est intentionnellement supprimé, puis rajouté avec une identité différente.
Pour résoudre ce problème, MaxCompute propose une fonctionnalité de purge des autorisations des utilisateurs. Si un utilisateur n'appartient plus à un projet mais conserve des autorisations ACL, de politique ou d'étiquette résiduelles, le propriétaire du projet ou un utilisateur disposant du rôle Admin ou Super_Administrator peut exécuter la commande suivante pour purger ces informations.
Syntaxe de la commande
purge privs from user <user_name>;
-
Paramètres
Nom du paramètre
Obligatoire
Description
user_name
Oui
Nom de l'utilisateur qui a été retiré du projet MaxCompute et dont vous souhaitez purger les informations d'autorisation restantes. Le format est le suivant :
Compte Alibaba Cloud : ALIYUN$<account_id>
Utilisateur RAM : RAM$<account_id>:<RAM_user_UID>
Rôle RAM :
RAM$<account_id>:role/<RAM role name>
Si vous exécutez cette commande pour un utilisateur qui n'a pas été retiré du projet, l'erreur "Principal <username> still exist in the project" est renvoyée. Vous devez d'abord exécuter la commande remove user <user_name> pour retirer l'utilisateur du projet.
Étapes suivantes
Une fois les autorisations accordées à un utilisateur, vous pouvez consulter ses informations d'autorisation. Pour plus d'informations, consultez la rubrique Interroger les informations d'autorisation des utilisateurs.