Tous les produits
Search
Centre de documentation

MaxCompute:Accorder à d'autres utilisateurs des autorisations sur un projet externe

Dernière mise à jour :Aug 10, 2026

Les tables d'un projet externe appartiennent au compte Alibaba Cloud qui a créé le projet. Pour permettre à d'autres utilisateurs d'interroger ou de modifier ces tables, vous devez les ajouter au projet externe et leur accorder explicitement des autorisations.

Notes d'utilisation

Lorsque la solution data lakehouse est activée pour MaxCompute, ce dernier ne conserve pas les métadonnées dans la source de données. Les politiques sont gérées en fonction des noms des objets présents dans la source de données. Si le nom d'un objet change, ses autorisations deviennent invalides : exécutez Revoke ou supprimez la politique pour les retirer. Si vous ne nettoyez pas les anciennes autorisations avant la création d'un nouvel objet portant le même nom, ce dernier hérite de ces autorisations et peut recevoir un accès non souhaité.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un projet externe créé

  • Le nom du compte Alibaba Cloud de l'utilisateur cible (format : ALIYUN$<account_name>)

  • (Facultatif) Si vous accordez l'accès à un utilisateur RAM, la prise en charge de RAM doit être activée pour le projet externe

Pour rechercher les utilisateurs existants dans le projet, exécutez list users; dans le client MaxCompute (odpscmd).

Pour accorder l'accès à d'autres comptes Alibaba Cloud ou utilisateurs RAM, respectez les normes de sécurité de MaxCompute. Pour plus de détails, consultez Présentation des autorisations .

Accorder à un utilisateur l'accès à un projet externe

Le flux d'autorisation concerne deux projets : le projet externe (où vous ajoutez l'utilisateur et accordez les autorisations sur les tables) et le projet principal (où vous accordez les autorisations d'exécution des jobs). Le tableau ci-dessous résume toutes les étapes à suivre.

Étape Projet Objectif Commande SQL
1 Projet externe Changer de contexte use <external_project_name>;
2 (Facultatif) Projet externe Activer la prise en charge des utilisateurs RAM add accountprovider ram;
3 (Facultatif) Projet externe Activer les types de données compatibles avec Hive set odps.sql.hive.compatible=true;
4 Projet externe Ajouter l'utilisateur au projet add user <Alibaba Cloud account>;
5 Projet externe Accorder l'autorisation de lister les tables grant List on project external_project to USER <Alibaba Cloud account>;
6 Projet externe Accorder des autorisations sur une table grant All on table <table_name> to user <Alibaba Cloud account>;
7 Projet principal Changer de contexte use <main_project_name>;
8 Projet principal Accorder l'autorisation d'exécuter des jobs grant CreateInstance on project <main_project_name> to user <Alibaba Cloud account>;

Étape 1 : Basculer vers le projet externe

use <external_project_name>;

Étape 2 : (Facultatif) Activer la prise en charge de RAM

Exécutez cette étape uniquement si l'utilisateur que vous ajoutez est un utilisateur RAM.

add accountprovider ram;

Étape 3 : (Facultatif) Activer les types de données compatibles avec Hive

Exécutez cette étape uniquement si le projet externe est basé sur une source de données externe Hadoop.

set odps.sql.hive.compatible=true;

Étape 4 : Ajouter l'utilisateur au projet

add user <Alibaba Cloud account>;

Remplacez <Alibaba Cloud account> par le nom du compte au format ALIYUN$<account_name>.

Étape 5 : Accorder l'autorisation de lister les tables

grant List on project external_project to USER <Alibaba Cloud account>;

Cela permet à l'utilisateur de voir quelles tables existent dans le projet externe.

Étape 6 : Accorder des autorisations sur une table

grant All on table <table_name> to user <Alibaba Cloud account>;

Remplacez <table_name> par le nom de la table à partager.

Étape 7 : Basculer vers le projet principal

use <main_project_name>;

Étape 8 : Accorder l'autorisation d'exécuter des jobs

grant CreateInstance on project <main_project_name> to user <Alibaba Cloud account>;

Étapes suivantes

Une fois l'accès accordé, l'utilisateur peut interroger et mettre à jour les données des tables dans le projet externe à l'aide de SQL. Pour obtenir la liste complète des opérations prises en charge, consultez Utiliser des instructions SQL pour gérer un projet externe.