Tous les produits
Search
Centre de documentation

MaxCompute:Download permission control

Dernière mise à jour :Aug 10, 2026

Le contrôle des téléchargements vous permet de gérer les utilisateurs autorisés à exporter des données depuis votre projet MaxCompute via les commandes Tunnel. Sans cette fonctionnalité, tous les utilisateurs et rôles d'un projet peuvent télécharger librement n'importe quelle table ou instance, ce qui expose vos données à un risque d'exfiltration. Une fois la fonctionnalité activée, seuls les utilisateurs ou rôles disposant d'autorisations de téléchargement explicites peuvent exporter des données.

Fonctionnement

Par défaut, le contrôle des téléchargements est désactivé pour les nouveaux projets. Une fois activé au niveau du projet, toutes les opérations de téléchargement basées sur Tunnel nécessitent des autorisations explicites.

Le tableau suivant indique quels objets prennent en charge les autorisations de téléchargement et comment les attribuer :

Type d'objet Valeurs valides Prise en charge des caractères génériques
Table Nom de la table ou de la vue Uniquement basé sur les rôles (*)
Instance Nom de l'instance (identique à l'ID de l'instance) Non pris en charge

Deux modèles d'autorisation sont disponibles :

Modèle Fonctionnement Cas d'utilisation idéal
Autorisation par utilisateur unique Accordez directement des autorisations de téléchargement à un utilisateur spécifique sur des tables ou instances précises Accès ciblé pour des utilisateurs individuels
Autorisation basée sur les rôles Accordez des autorisations de téléchargement à un rôle, puis attribuez ce rôle à plusieurs utilisateurs Gestion de l'accès pour des groupes ; prend en charge les caractères génériques (*) dans les noms d'objets

Limites et remarques d'utilisation

Limites :

  • L'autorisation s'applique uniquement aux sujets (utilisateurs ou rôles) et aux objets existants. Vous ne pouvez pas pré-autoriser des sujets ou des objets futurs.

  • Lorsque vous accordez des autorisations directement à un utilisateur, les caractères génériques (*) ne sont pas pris en charge dans les noms d'objets. Cette restriction vise à éviter l'octroi involontaire d'un accès trop large. Utilisez l'autorisation basée sur les rôles si vous avez besoin de modèles avec caractères génériques.

Remarques d'utilisation :

Activer le contrôle des téléchargements

Autorisations requises : Propriétaire du projet ou rôle Super_Administrator.

Exécutez la commande suivante au niveau du projet :

setproject odps.security.enabledownloadprivilege=true;

Pour désactiver le contrôle des téléchargements :

setproject odps.security.enabledownloadprivilege=false;

Accorder et révoquer des autorisations de téléchargement

Autorisations requises : Pour accorder ou révoquer des autorisations sur un objet, reportez-vous à la colonne Authorized by de la rubrique Autorisations.

Exécutez toutes les commandes sur le client MaxCompute, MaxCompute Studio ou la console DataWorks.

Workflow

Pour l'autorisation par utilisateur unique comme pour celle basée sur les rôles, suivez cette séquence :

  1. Vérifiez que l'utilisateur ou le rôle est membre du projet. Exécutez list users; ou list roles; sur le client MaxCompute pour rechercher les noms. Pour ajouter des utilisateurs ou des rôles, consultez les rubriques Planification et gestion des utilisateurs ou Planification des rôles.

  2. Confirmez les noms des tables ou instances à contrôler. Exécutez show tables; ou show instances; pour lister les objets disponibles.

  3. Exécutez la commande grant ou revoke.

  4. Vérifiez le résultat avec show grants ou describe role.

Syntaxe

Accorder des autorisations de téléchargement :

grant Download on <object_type> <object_name> to <subject_type> <subject_name>;

Révoquer des autorisations de téléchargement :

revoke Download on <object_type> <object_name> from <subject_type> <subject_name>;

Paramètres

Paramètre Obligatoire Description
object_type Oui Type de l'objet. Valeurs valides : Table, Instance. Un seul type d'objet par commande.
object_name Oui Nom de la table, de la vue ou de l'instance. Pour l'autorisation basée sur les rôles, les caractères génériques sont pris en charge. Par exemple, table taobao* correspond à toutes les tables dont le nom commence par taobao. Exécutez show tables; ou show instances; pour obtenir les noms.
subject_type Oui Type du sujet. Valeurs valides : USER (un compte Alibaba Cloud ou un utilisateur RAM), ROLE (un rôle).
subject_name Oui Nom de l'utilisateur ou du rôle. Un seul sujet par commande. Utilisez ALIYUN$<account> pour les comptes Alibaba Cloud et RAM$<account>:<username> pour les utilisateurs RAM. Exécutez list users; ou list roles; pour obtenir les noms.

Exemples

Les exemples suivants utilisent la configuration suivante : username@example.com possède test_project_a. Allen, Tom et Alice sont des utilisateurs RAM sous ce compte. Le contrôle des téléchargements est activé pour le projet.

Exemple 1 : Accorder des autorisations de téléchargement à un utilisateur RAM

Ajoutez Allen au projet et accordez-lui des autorisations de téléchargement sur la table sale_detail :

-- Switch to the project.
use test_project_a;
-- Add Allen as a project member.
add user RAM$username@example.com:Allen;
-- Grant Allen download permissions on sale_detail.
grant Download on table sale_detail to USER RAM$username@example.com:Allen;
-- Verify Allen's permissions.
show grants for RAM$username@example.com:Allen;

Sortie attendue :

Authorization Type: ACL
[user/RAM$username@example.com:Allen]
A       projects/test_project_a/tables/sale_detail: Download

Exemple 2 : Révoquer les autorisations de téléchargement d'un utilisateur RAM

Révoquez les autorisations accordées dans l'exemple 1 :

-- Switch to the project.
use test_project_a;
-- Revoke Allen's download permissions.
revoke Download on table sale_detail from USER RAM$username@example.com:Allen;
-- Verify that permissions are removed.
show grants for RAM$username@example.com:Allen;

Exemple 3 : Accorder des autorisations de téléchargement à plusieurs utilisateurs via un rôle

Accordez à Alice et Tom des autorisations de téléchargement sur toutes les tables dont le nom commence par tb_ :

-- Switch to the project.
use test_project_a;
-- Add Alice and Tom as project members.
add user RAM$username@example.com:Alice;
add user RAM$username@example.com:Tom;
-- Create a role.
create role Worker;
-- Assign the role to Alice and Tom.
grant Worker TO RAM$username@example.com:Alice;
grant Worker TO RAM$username@example.com:Tom;
-- Grant the Worker role download permissions on all tb_* tables.
grant Download on table tb_* to ROLE Worker;
-- Verify the role's permissions.
describe role Worker;

Sortie attendue :

Authorization Type: Policy
[role/worker]
A       projects/test_project_a/tables/tb_*: Download

Exemple 4 : Révoquer des autorisations de téléchargement basées sur un rôle

Révoquez les autorisations accordées dans l'exemple 3 à Alice et Tom :

-- Switch to the project.
use test_project_a;
-- Remove the Worker role from Alice and Tom.
revoke Worker from RAM$username@example.com:Alice;
revoke Worker from RAM$username@example.com:Tom;
-- Verify that Alice's permissions no longer include download access.
show grants for RAM$username@example.com:Alice;

Étapes suivantes