Tous les produits
Search
Centre de documentation

MaxCompute:Gérer les autorisations des utilisateurs à l'aide de commandes

Dernière mise à jour :Sep 08, 2026

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.

Remarque

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 :

    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 Worker au 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 :

    Vous pouvez exécuter la commande list users; dans le client MaxCompute pour obtenir le nom d'utilisateur.

  • Exemples

    Révoquez le rôle Worker des utilisateurs ALIYUN$5527xxxxxxxx5788, RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649 et 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 Worker d'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 Worker d'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 Worker d'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.

Remarque

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

Contrôle d'accès basé sur les ACL

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

Contrôle des autorisations de téléchargement

Révoquer l'autorisation Download d'un utilisateur

Accorder à un utilisateur des autorisations d'accès aux données de niveau de sensibilité élevé

Contrôle d'accès basé sur les labels

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 :

      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 :

      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 :

      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 :

      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 :

      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 projet test_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:

      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:

      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:

      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:

      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:

      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 :

      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 :

      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 :

      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 table sale_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 :

      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_detail pour 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 :

Remarque

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.