Tous les produits
Search
Centre de documentation

MaxCompute:Autorisation de rôle au niveau du projet

Dernière mise à jour :Oct 10, 2026

Pour accorder les mêmes autorisations à plusieurs utilisateurs dans un projet MaxCompute, créez un rôle, attribuez-lui des autorisations, puis associez ce rôle aux utilisateurs. Ces derniers héritent alors des autorisations du rôle. Cette rubrique décrit la syntaxe de l'autorisation de rôle au niveau du projet et fournit des exemples.

Cas d'utilisation de l'autorisation de rôle

MaxCompute prend en charge les scénarios d'autorisation de rôle décrits dans le tableau suivant. Après avoir accordé des autorisations à un rôle, vous pouvez associer un rôle à un utilisateur. Si un utilisateur n'a plus besoin des autorisations, vous pouvez dissocier un rôle d'un utilisateur.

Scénario d'autorisation de rôle

Méthode d'autorisation

Autorisateur

Plateforme d'autorisation

Accorder des autorisations d'opération sur un objet à un rôle

Pour plus d'informations, consultez la colonne Autorisateurs pris en charge de la rubrique Autorisations.

Révoquer les autorisations d'opération sur un objet d'un rôle

Accorder l'autorisation Download à un rôle

Contrôle des autorisations de téléchargement

Révoquer l'autorisation Download d'un rôle

Accorder à un rôle des autorisations d'accès aux données hautement sensibles

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

Révoquer les autorisations d'accès aux données hautement sensibles d'un rôle

Accorder des autorisations d'opération sur un objet à un rôle

Vous pouvez accorder à un rôle des autorisations d'opération sur des projets, des tables, des modèles, des ressources, des fonctions ou des instances.

  • Syntaxe

    • Accorder des autorisations d'opération sur un projet à un rôle

      • Autorisation ACL

        GRANT Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
              ON project <project_name> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Autorisation basée sur des politiques utilisant la syntaxe ACL

        GRANT Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
              ON project <project_name> 
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Accorder des autorisations d'opération sur une table à un rôle

      • Autorisation ACL

        GRANT Describe|Select|Alter|Update|Drop|ShowHistory|All 
              ON TABLE <table_name> [(<column_list>)] 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Autorisation basée sur des politiques utilisant la syntaxe ACL

        GRANT Describe|Select|Alter|Update|Drop|ShowHistory|All 
              ON TABLE <table_name> [(<column_list>)] 
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Accorder des autorisations d'opération sur un modèle à un rôle

      • Autorisation ACL

        GRANT Describe|Execute|Alter|Drop|All 
              ON MODEL <model_name> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Autorisation basée sur des politiques utilisant la syntaxe ACL

        GRANT Describe|Execute|Alter|Drop|All 
              ON MODEL <model_name> 
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Accorder des autorisations d'opération sur une ressource à un rôle

      • Autorisation ACL

        GRANT Read|Write|Delete|All 
              ON resource <resource_name> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Autorisation basée sur des politiques utilisant la syntaxe ACL

        GRANT Read|Write|Delete|All 
              ON resource <resource_name> 
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Accorder des autorisations d'opération sur une fonction à un rôle

      • Autorisation ACL

        GRANT Read|Write|Delete|Execute|All 
              ON FUNCTION <function_name> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Autorisation basée sur des politiques utilisant la syntaxe ACL

        GRANT Read|Write|Delete|Execute|All 
              ON FUNCTION <function_name>  
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Accorder des autorisations d'opération sur une instance à un rôle

      • Autorisation ACL

        GRANT Read|Write|All 
              ON instance <instance_id> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Autorisation basée sur des politiques utilisant la syntaxe ACL

        GRANT Read|Write|All  
              ON instance <instance_id>   
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
  • Paramètres

    Pour plus d'informations sur les paramètres, consultez les rubriques Contrôle d'accès ACL ou Contrôle d'accès basé sur des politiques.

  • Exemples

    Supposons que Bob@aliyun.com soit le propriétaire du projet test_project_a et qu'un rôle nommé Worker ait été créé dans ce projet. Les exemples suivants montrent comment accorder des autorisations au rôle Worker.

    • Exemple 1 : accorder à un rôle les autorisations de créer des tables, des fonctions et des instances, ainsi que de répertorier tous les objets d'un projet.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Grant permissions using ACL.
      GRANT CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker;
      -- Grant permissions using the ACL syntax for policy authorization.
      GRANT CreateTable, CreateFunction, CreateInstance, List 
            ON project test_project_a  
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 2 : accorder à un rôle les autorisations de lire les métadonnées et les données d'une table.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Grant permissions using ACL.
      GRANT Describe, Select ON TABLE sale_detail TO ROLE Worker;
      -- Grant permissions using the ACL syntax for policy authorization.
      GRANT Describe, Select  
            ON TABLE sale_detail   
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 3 : accorder toutes les autorisations sur un modèle à un rôle.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Grant permissions using ACL.
      GRANT All ON MODEL my_model TO ROLE Worker;
      -- Grant permissions using the ACL syntax for policy authorization.
      GRANT All  
            ON MODEL my_model  
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 4 : accorder à un rôle les autorisations de lire et de mettre à jour une ressource.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Grant permissions using ACL.
      GRANT Read, Write ON resource udtf.jar TO ROLE Worker;
      -- Grant permissions using the ACL syntax for policy authorization.
      GRANT Read, Write   
            ON resource udtf.jar  
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 5 : accorder à un rôle les autorisations de lire et de mettre à jour une fonction.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Grant permissions using ACL.
      GRANT Read, Write ON FUNCTION udf_test TO ROLE Worker;
      -- Grant permissions using the ACL syntax for policy authorization.
      GRANT Read, Write   
            ON FUNCTION udf_test  
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 6 : accorder toutes les autorisations d'opération sur une instance à un rôle.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Grant permissions using ACL.
      GRANT All ON instance 202112300224**** TO ROLE Worker;
      -- Grant permissions using the ACL syntax for policy authorization.
      GRANT All    
            ON instance 202112300224****   
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");

Révoquer les autorisations d'opération sur un objet d'un rôle

Vous pouvez révoquer les autorisations d'opération sur des projets, des tables, des modèles, des ressources, des fonctions ou des instances d'un rôle.

  • Syntaxe

    • Révoquer les autorisations d'opération sur un projet d'un rôle

      • Révoquer les autorisations accordées via ACL

        REVOKE Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
              ON project <project_name> 
              FROM ROLE <role_name>;
      • Révoquer les autorisations accordées via une autorisation basée sur des politiques

        REVOKE Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
              ON project <project_name> 
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Révoquer les autorisations d'opération sur une table d'un rôle

      • Révoquer les autorisations accordées via ACL

        REVOKE Describe|Select|Alter|Update|Drop|ShowHistory|All 
              ON TABLE <table_name> [(<column_list>)] 
              FROM ROLE <role_name>;
      • Révoquer les autorisations accordées via une autorisation basée sur des politiques

        REVOKE Describe|Select|Alter|Update|Drop|ShowHistory|All 
              ON TABLE <table_name> [(<column_list>)] 
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Révoquer les autorisations d'opération sur un modèle d'un rôle

      • Révoquer les autorisations accordées via ACL

        REVOKE Describe|Execute|Alter|Drop|All 
              ON MODEL <model_name>
              FROM ROLE <role_name>;
      • Révoquer les autorisations accordées via une autorisation basée sur des politiques

        REVOKE Describe|Execute|Alter|Drop|All 
              ON MODEL <model_name> 
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Révoquer les autorisations d'opération sur une ressource d'un rôle

      • Révoquer les autorisations accordées via ACL

        REVOKE Read|Write|Delete|All 
              ON resource <resource_name> 
              FROM ROLE <role_name>;
      • Révoquer les autorisations accordées via une autorisation basée sur des politiques

        REVOKE Read|Write|Delete|All 
              ON resource <resource_name> 
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Révoquer les autorisations d'opération sur une fonction d'un rôle

      • Révoquer les autorisations accordées via ACL

        REVOKE Read|Write|Delete|Execute|All 
              ON FUNCTION <function_name> 
              FROM ROLE <role_name>;
      • Révoquer les autorisations accordées via une autorisation basée sur des politiques

        REVOKE Read|Write|Delete|Execute|All 
              ON FUNCTION <function_name>  
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Révoquer les autorisations d'opération sur une instance d'un rôle

      • Révoquer les autorisations accordées via ACL

        REVOKE Read|Write|All 
              ON instance <instance_id> 
              FROM ROLE <role_name>;
      • Révoquer les autorisations accordées via une autorisation basée sur des politiques

        REVOKE Read|Write|All  
              ON instance <instance_id>   
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
  • Paramètres

    Pour plus d'informations sur les paramètres, consultez les rubriques Contrôle d'accès ACL ou Contrôle d'accès basé sur des politiques.

  • Exemples

    Les exemples suivants montrent comment révoquer des autorisations du rôle Worker.

    • Exemple 1 : révoquer du rôle Worker les autorisations de créer des tables, des fonctions et des instances, ainsi que de répertorier tous les objets d'un projet.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Revoke permissions granted using ACL.
      REVOKE CreateTable, CreateFunction, CreateInstance, List ON project test_project_a FROM ROLE Worker;
      -- Revoke permissions granted using policy authorization.
      REVOKE CreateTable, CreateFunction, CreateInstance, List 
            ON project test_project_a  
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 2 : révoquer du rôle Worker les autorisations de lire les métadonnées et les données d'une table.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Revoke permissions granted using ACL.
      REVOKE Describe, Select ON TABLE sale_detail TO ROLE Worker;
      -- Revoke permissions granted using policy authorization.
      REVOKE Describe, Select  
            ON TABLE sale_detail   
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 3 : révoquer toutes les autorisations sur un modèle du rôle Worker.

      -- Bob enters the test_project_a project.
      use test_project_a;
      -- Revoke permissions granted using ACL.
      REVOKE All ON MODEL my_model FROM ROLE Worker;
      -- Revoke permissions granted using policy authorization.
      REVOKE All  
            ON MODEL my_model  
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 4 : révoquer du rôle Worker les autorisations de lire et de mettre à jour une ressource.

      -- Bob enters the test_project_a project.
      USE test_project_a;
      -- Revoke permissions granted using ACL.
      REVOKE Read, Write ON resource udtf.jar FROM ROLE Worker;
      -- Revoke permissions granted using policy authorization.
      REVOKE Read, Write   
            ON resource udtf.jar  
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 5 : révoquer du rôle Worker les autorisations de lire et de mettre à jour une fonction.

      -- Bob enters the test_project_a project.
      USE test_project_a;
      -- Revoke permissions granted using ACL.
      REVOKE Read, Write ON FUNCTION udf_test FROM ROLE Worker;
      -- Revoke permissions granted using policy authorization.
      REVOKE Read, Write   
            ON FUNCTION udf_test  
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Exemple 6 : révoquer toutes les autorisations d'opération sur une instance du rôle Worker.

      -- Bob enters the test_project_a project.
      USE test_project_a;
      -- Revoke permissions granted using ACL.
      REVOKE All ON instance 202112300224**** FROM ROLE Worker;
      -- Revoke permissions granted using policy authorization.
      REVOKE All    
            ON instance 202112300224****   
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");

Accorder l'autorisation Download à un rôle

Vous pouvez accorder à un rôle l'autorisation de télécharger des données depuis des tables, des ressources, des fonctions ou des instances.

  • Syntaxe

    GRANT Download ON {Table|Resource|Function|Instance} <object_name> TO ROLE <role_name>;
  • Paramètres

    Pour plus d'informations sur les paramètres, consultez la rubrique Contrôle des autorisations de téléchargement.

  • Exemple

    Supposons que le contrôle des autorisations de téléchargement soit activé pour le projet test_project_a. L'exemple suivant montre comment accorder au rôle Worker l'autorisation de télécharger des données depuis une table spécifique.

    -- Bob enters the test_project_a project.
    USE test_project_a;
    -- Bob grants the permission to the Worker role.
    GRANT Download ON TABLE sale_detail TO ROLE Worker;

Révoquer l'autorisation Download d'un rôle

Vous pouvez révoquer l'autorisation de télécharger des données depuis des tables, des ressources, des fonctions ou des instances d'un rôle.

  • Syntaxe

    REVOKE Download ON {Table|Resource|Function|Instance} <object_name> FROM ROLE <role_name>;
  • Paramètres

    Pour plus d'informations sur les paramètres, consultez la rubrique Contrôle des autorisations de téléchargement.

  • Exemple

    L'exemple suivant montre comment révoquer du rôle Worker l'autorisation de télécharger des données depuis une table spécifique.

    -- Bob enters the test_project_a project.
    USE test_project_a;
    -- Bob revokes the permission from the Worker role.
    REVOKE Download ON TABLE sale_detail FROM ROLE Worker;

Accorder à un rôle des autorisations d'accès aux données hautement sensibles

Après avoir défini un libellé de niveau d'autorisation pour un rôle, si ce dernier doit accéder à des données d'un niveau de sensibilité supérieur, vous devez lui accorder les autorisations requises. Pour savoir comment définir un libellé de niveau d'autorisation pour un utilisateur ou un rôle, consultez la section Définir un libellé de niveau d'autorisation pour un utilisateur ou un rôle.

  • Syntaxe

    GRANT Label <number> ON TABLE <table_name> [(<column_list>)] TO ROLE <role_name> [WITH exp <days>];
  • Paramètres

    Pour plus d'informations sur les paramètres, consultez la section Autorisation explicite basée sur les libellés.

  • Exemple

    Supposons que, dans le projet test_project_a, le libellé de niveau d'autorisation du rôle Worker soit 2. L'exemple suivant montre comment accorder à ce rôle l'autorisation d'accéder aux données dont le niveau de sensibilité maximal est 4 dans la table sale_detail.

    -- Bob enters the test_project_a project.
    USE test_project_a;
    -- Bob grants the permission to the Worker role.
    GRANT Label 4 ON TABLE sale_detail TO ROLE Worker;

Révoquer les autorisations d'accès aux données hautement sensibles d'un rôle

Vous pouvez révoquer les autorisations d'accès aux données hautement sensibles d'un rôle. Le niveau d'autorisation du rôle lui-même n'est pas affecté.

  • Syntaxe

    REVOKE Label ON TABLE <table_name> [(<column_list>)] FROM ROLE <role_name>;
  • Paramètres

    Pour plus d'informations sur les paramètres, consultez la section Révoquer l'autorisation explicite basée sur les libellés.

  • Exemple

    L'exemple suivant montre comment révoquer du rôle Worker l'autorisation d'accéder aux données dont le niveau de sensibilité maximal est 4 dans la table sale_detail.

    -- Bob enters the test_project_a project.
    USE test_project_a;
    -- Bob revokes the permission from the Worker role.
    REVOKE Label ON TABLE sale_detail FROM ROLE Worker;

Associer un rôle à un utilisateur

Vous pouvez associer un rôle intégré ou personnalisé au niveau du projet à un utilisateur. Ce dernier hérite alors des autorisations du rôle.

  • Syntaxe

    GRANT <role_name> TO <user_name>;
  • Notes

    Plusieurs utilisateurs peuvent être associés au même rôle, et un utilisateur peut être associé à plusieurs rôles.

  • Paramètres

    Paramètre

    Obligatoire

    Description

    role_name

    Oui

    Nom du rôle à associer à 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

    Nom de l'utilisateur auquel vous souhaitez associer le rôle.

    Vous pouvez exécuter la commande list users; dans le client MaxCompute pour afficher les informations sur les utilisateurs.

  • Exemple

    Cet exemple montre comment associer le rôle Worker à l'utilisateur Ka**@aliyun.com et à l'utilisateur RAM RAM$Bob@aliyun.com:Allen dans un projet MaxCompute.

    -- Bob enters the test_project_a project.
    USE test_project_a;
    -- Bob attaches the role to the users.
    GRANT Worker TO ALIYUN$Ka**@aliyun.com;
    GRANT Worker TO RAM$Bob@aliyun.com:Allen;

Dissocier un rôle d'un utilisateur

Vous pouvez dissocier un rôle d'un utilisateur. Ce dernier ne dispose plus des autorisations accordées par ce rôle.

  • Syntaxe

    REVOKE <role_name> FROM <user_name>;
  • Paramètres

    Paramètre

    Obligatoire

    Description

    role_name

    Oui

    Nom du rôle à dissocier de l'utilisateur.

    Vous pouvez exécuter la commande list roles; dans le client MaxCompute pour obtenir le nom du rôle.

    user_name

    Oui

    Nom de l'utilisateur duquel vous souhaitez dissocier le rôle.

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

  • Exemple

    Cet exemple montre comment dissocier le rôle Worker de Kate@aliyun.com et de RAM$Bob@aliyun.com:Allen.

    -- Bob enters the test_project_a project.
    USE test_project_a;
    -- Bob detaches the role from the users.
    REVOKE Worker FROM ALIYUN$Kate@aliyun.com;
    REVOKE Worker FROM RAM$Bob@aliyun.com:Allen;

Étapes suivantes

Après avoir accordé des autorisations à un rôle, vous pouvez effectuer les opérations suivantes selon vos besoins :