Tous les produits
Search
Centre de documentation

MaxCompute:Interroger les autorisations avec MaxCompute SQL

Dernière mise à jour :Aug 12, 2026

MaxCompute SQL permet d'auditer les accès en interrogeant les autorisations d'un utilisateur, d'un rôle ou d'un objet, ainsi qu'en inspectant les contrôles d'accès basés sur les libellés et les packages.

Indicateurs d'autorisation

Les résultats des requêtes utilisent des codes à une lettre pour représenter le type d'autorisation accordée :

Code

Signification

A

Allow — l'opération est autorisée

D

Deny — l'opération est refusée

C

With Condition — l'autorisation s'applique uniquement sous certaines conditions spécifiées

G

With Grant Option — le bénéficiaire peut également accorder cette autorisation à d'autres utilisateurs

Référence des commandes

Consultez ce résumé pour identifier la commande correspondant à votre scénario, puis reportez-vous à la section appropriée pour obtenir la syntaxe complète et des exemples.

-- Role permissions
show grants for role <role_name>;
describe role <role_name>;

-- User permissions
show grants;
show grants for <user_name>;

-- Access control list (ACL) permissions on an object
show acl for <object_name> [on type <object_type>];

-- Label-based permissions (sensitive data)
show label grants;
show label <level> grants;
show label grants for user <user_name>;
show label <level> grants for user <user_name>;
show label grants on table <table_name>;
show label <level> grants on table <table_name>;
show label [<level>] grants on table <table_name> for user <user_name>;
describe <table_name>;

-- Package permissions
show acl for <project_name>.<package_name> on type package;
show grants on <object_type> <object_name> privilegeproperties ("refobject"="true", "refproject"="<project_name>", "package"="<package_name>");
show label grants on table <table_name> privilegeproperties ("refobject"="true", "refproject"="<project_name>", "package"="<package_name>");

Exécutez ces commandes depuis le client MaxCompute, MaxCompute Studio ou la console DataWorks.

L'utilisation de describe role nécessite d'être propriétaire du projet ou d'avoir le rôle Super_Administrator ou Admin.

Interroger les autorisations d'un rôle

Interroger les autorisations d'un rôle spécifique

show grants for role <role_name>;

Paramètres

Paramètre

Obligatoire

Description

role_name

Oui

Nom du rôle. Exécutez list roles; sur le client MaxCompute pour lister les rôles disponibles.

Résultat de la requête : Retourne les autorisations ACL, Policy et Download pour le rôle spécifié.

Exemple

Interrogez les autorisations du rôle Worker dans test_project_a :

show grants for role Worker;

Sortie :

Authorization Type: ACL
[role/Worker]
A       projects/test_project_a: CreateTable | CreateResource | CreateInstance | CreateFunction | List
A       projects/test_project_a/tables/bank_data: Download | Describe | Select	Expires:20xx-xx-xxTxx:xx:xx+xxxx

Authorization Type: Policy
[role/Worker]
A       projects/test_project_a/tables/bak*: Download
A       projects/test_project_a/tables/sale_detail: Update
A       projects/test_project_a/tables/tb_*: Download | Drop
A       projects/test_project_a/tables/view_1: Drop

Interroger les autorisations et les utilisateurs assignés d'un rôle spécifique

Cette opération nécessite d'être propriétaire du projet ou d'avoir le rôle Super_Administrator ou Admin.
describe role <role_name>;

Paramètres

Paramètre

Obligatoire

Description

role_name

Oui

Nom du rôle. Exécutez list roles; sur le client MaxCompute pour lister les rôles disponibles.

Résultat de la requête : Retourne les autorisations ACL, Policy et Download pour le rôle, ainsi que la liste des utilisateurs qui lui sont assignés.

Exemple

Bob@aliyun.com est propriétaire de test_project_a. Le rôle Worker est utilisé dans ce projet. Interrogez les autorisations du rôle Worker et ses utilisateurs assignés :

describe role Worker;

Sortie :

[users]
RAM$Bob@aliyun.com:Allen

Authorization Type: ACL
A       projects/test_project_a: CreateTable | CreateResource | CreateInstance | CreateFunction | List
A       projects/test_project_a/tables/bank_data: Download

Authorization Type: Policy
A       projects/test_project_a/tables/bak*: Download
A       projects/test_project_a/tables/sale_detail: Update
A       projects/test_project_a/tables/tb_*: Download | Drop
A       projects/test_project_a/tables/view_1: Drop

Interroger les autorisations d'un utilisateur

Interroger les autorisations de l'utilisateur actuel

show grants;

Résultat de la requête :

  • Si l'utilisateur actuel est le propriétaire du projet : retourne le compte Alibaba Cloud et les projets créés par cet utilisateur.

  • Dans le cas contraire : retourne les rôles assignés à l'utilisateur ainsi que ses autorisations ACL, Policy et Download.

Exemple

Bob@aliyun.com est propriétaire de test_project_a. Allen est un utilisateur RAM ajouté au projet.

En tant que propriétaire du projet (Bob@aliyun.com) :

show grants;

Sortie :

[ALIYUN$Bob@aliyun.com]
projects/test_project_a: Project Owner

En tant qu'utilisateur RAM Allen :

show grants;

Sortie :

[roles]
worker

Authorization Type: ACL
[user/RAM$Bob@aliyun.com:Allen]
A       projects/test_project_a: CreateTable | CreateResource | CreateInstance | CreateFunction | List
A       projects/test_project_a/packages/project_test_b.datashare: Read

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

Interroger les autorisations d'un utilisateur spécifique

show grants for <user_name>;

Paramètres

Paramètre

Obligatoire

Description

user_name

Oui

Nom de l'utilisateur. Pour les utilisateurs RAM, utilisez le format RAM$<account_name>:<ram_user_name>. Exécutez list users; sur le client MaxCompute pour lister les utilisateurs.

Résultat de la requête :

  • Si l'utilisateur spécifié est le propriétaire du projet : retourne le compte Alibaba Cloud et les projets créés par cet utilisateur.

  • Dans le cas contraire : retourne les rôles assignés à l'utilisateur ainsi que ses autorisations ACL, Policy et Download.

Exemple

Interrogez les autorisations du compte Alibaba Cloud Bob@aliyun.com :

show grants for ALIYUN$Bob@aliyun.com;

Sortie :

[ALIYUN$Bob@aliyun.com]
projects/test_project_a: Project Owner

Interrogez les autorisations de l'utilisateur RAM Allen :

show grants for RAM$Bob@aliyun.com:Allen;

Sortie :

[roles]
worker

Authorization Type: ACL
[user/RAM$Bob@aliyun.com:Allen]
A       projects/test_project_a: CreateTable | CreateResource | CreateInstance | CreateFunction | List
A       projects/test_project_a/packages/project_test_b.datashare: Read

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

Interroger les autorisations ACL d'un objet

show acl for <object_name> [on type <object_type>];

Paramètres

Paramètre

Obligatoire

Description

object_name

Oui

Nom de l'objet. Consultez la section ci-dessous pour obtenir les noms selon le type d'objet.

object_type

Non

Type de l'objet. Valeurs valides : Project, Table, Model, Resource, Function, Instance. La valeur par défaut est Table si ce paramètre est omis.

Obtenir les noms d'objets par type

Type d'objet

Commande

Project

Consultez l'onglet la console MaxComputeProject management dans la console MaxCompute. Seul le projet actuel est accessible.

Table ou vue

Exécutez show tables; sur le client MaxCompute

Resource

Exécutez list resources; sur le client MaxCompute

Function

Exécutez list functions; sur le client MaxCompute

Instance

Exécutez show instances; sur le client MaxCompute (les noms d'instance correspondent aux ID d'instance)

Résultat de la requête : Retourne les rôles et utilisateurs disposant d'autorisations sur l'objet, ainsi que leurs autorisations ACL associées.

Exemples

Interrogez les autorisations sur le projet test_project_a :

show acl for test_project_a on type project;

Sortie :

Authorization Type: Implicit
AG      project_owner/ALIYUN$Bob@aliyun.com: All
AG      admin/ALIYUN$Bob@aliyun.com: All

Authorization Type: ACL
A       role/worker(projects/test_project_a): CreateTable | CreateResource | CreateInstance | CreateFunction | List
A       role/worker1(projects/test_project_a): CreateTable | CreateResource | CreateInstance | CreateFunction | List
A       role/worker2(projects/test_project_a): CreateTable | CreateResource | CreateInstance | CreateFunction

Interrogez les autorisations sur la table sale_detail :

show acl for sale_detail on type table;

Sortie :

Authorization Type: Implicit
AG      project_owner/ALIYUN$Bob@aliyun.com: All
AG      admin/ALIYUN$Bob@aliyun.com: All
AG      object_creator/ALIYUN$Bob@aliyun.com: All

Authorization Type: ACL
A       user/RAM$Bob@aliyun.com:Allen(acs:odps:*:projects/test_project_a/tables/sale_detail/customer_id): Describe | Select
A       user/RAM$Bob@aliyun.com:Allen(acs:odps:*:projects/test_project_a/tables/sale_detail/shop_name): Describe | Select

Interrogez les autorisations sur la ressource udtf.jar :

show acl for udtf.jar on type resource;

Sortie :

Authorization Type: Implicit
AG      project_owner/ALIYUN$Bob@aliyun.com: All
AG      admin/ALIYUN$Bob@aliyun.com: All
AG      object_creator/ALIYUN$Bob@aliyun.com: All

Authorization Type: ACL
A       user/RAM$Bob@aliyun.com:Allen(acs:odps:*:projects/test_project_a/resources/udtf.jar): Read | Write

Interrogez les autorisations sur la fonction UDTFResource :

show acl for UDTFResource on type function;

Sortie :

Authorization Type: Implicit
AG      project_owner/ALIYUN$Bob@aliyun.com: All
AG      admin/ALIYUN$Bob@aliyun.com: All
AG      object_creator/ALIYUN$Bob@aliyun.com: All

Authorization Type: ACL
A       role/worker1(acs:odps:*:projects/test_project_a/registration/functions/udtfresource): Download
A       user/RAM$Bob@aliyun.com:Allen(acs:odps:*:projects/test_project_a/registration/functions/udtfresource): All

Interrogez les autorisations sur une instance :

show acl for 20220105031923461ghu**** on type instance;

Sortie :

Authorization Type: Implicit
AG      project_owner/ALIYUN$Bob@aliyun.com: All
AG      admin/ALIYUN$Bob@aliyun.com: All
AG      object_creator/ALIYUN$Bob@aliyun.com: All

Authorization Type: ACL
A       user/RAM$Bob@aliyun.com:Allen(acs:odps:*:projects/test_project_a/instances/20220105031923461ghu****): All

Interroger les autorisations basées sur les libellés

Les autorisations basées sur les libellés contrôlent l'accès aux tables et colonnes contenant des données sensibles. Les niveaux de sensibilité vont de 1 (le plus bas) à 4 (le plus élevé). Les commandes suivantes permettent d'identifier les tables sensibles accessibles à un utilisateur, les utilisateurs autorisés à accéder à une table donnée, ainsi que le libellé attribué à chaque colonne.

Interroger toutes les tables sensibles accessibles à l'utilisateur actuel

show label grants;

Résultat de la requête

Champ

Description

User Label

Niveau de libellé d'accès de l'utilisateur actuel

TableName

Nom de la table sensible accessible à l'utilisateur

GrantedLabel

Niveau de libellé accordé à l'utilisateur sur la table

Expires

Date d'expiration de l'autorisation

Exemple

Bob@aliyun.com est propriétaire de test_project_a. Allen est un utilisateur RAM dans ce projet.

En tant que Bob@aliyun.com (propriétaire du projet) :

show label grants;

Sortie :

User Label: 0

+--------------+--------------+--------------------------+
| TableName    | GrantedLabel | Expires                  |
+--------------+--------------+--------------------------+
| bank_data    | 3            | 2022-07-04T16:30:47+0800 |
+--------------+--------------+--------------------------+
| bank_data_pt | 4            | 2022-07-04T16:36:04+0800 |
+--------------+--------------+--------------------------+

En tant qu'utilisateur RAM Allen :

show label grants;

Sortie :

User Label: 1

+-------------+--------------+--------------------------+
| TableName   | GrantedLabel | Expires                  |
+-------------+--------------+--------------------------+
| sale_detail | 2            | 2022-01-09T11:43:27+0800 |
+-------------+--------------+--------------------------+

Interroger les tables sensibles d'un niveau spécifique accessibles à l'utilisateur actuel

show label <level> grants;

Paramètres

Paramètre

Obligatoire

Description

level

Oui

Niveau de sensibilité servant de filtre (1–4)

Exemple

En tant que Bob@aliyun.com, interrogez les tables sensibles de niveau 3 :

show label 3 grants;

Sortie :

User Label: 0

+--------------+--------------+--------------------------+
| TableName    | GrantedLabel | Expires                  |
+--------------+--------------+--------------------------+
| bank_data    | 3            | 2022-07-04T16:30:47+0800 |
+--------------+--------------+--------------------------+

En tant qu'utilisateur RAM Allen, interrogez les tables sensibles de niveau 2 :

show label 2 grants;

Sortie :

User Label: 1

+-------------+--------------+--------------------------+
| TableName   | GrantedLabel | Expires                  |
+-------------+--------------+--------------------------+
| sale_detail | 2            | 2022-01-09T11:43:27+0800 |
+-------------+--------------+--------------------------+

Interroger les tables sensibles accessibles à un utilisateur spécifique

show label grants for user <user_name>;

Paramètres

Paramètre

Obligatoire

Description

user_name

Oui

Nom de l'utilisateur. Exécutez list users; sur le client MaxCompute pour lister les utilisateurs.

Exemple

Interrogez les tables sensibles accessibles à l'utilisateur RAM Allen :

show label grants for user RAM$Bob@aliyun.com:Allen;

Sortie :

User Label: 2

+-----------+--------------+--------------------------+
| TableName | GrantedLabel | Expires                  |
+-----------+--------------+--------------------------+
| bank_data | 3            | 2022-07-04T16:29:32+0800 |
+-----------+--------------+--------------------------+

Interroger les tables sensibles d'un niveau spécifique accessibles à un utilisateur donné

show label <level> grants for user <user_name>;

Paramètres

Paramètre

Obligatoire

Description

level

Oui

Niveau de sensibilité servant de filtre (1–4)

user_name

Oui

Nom de l'utilisateur. Exécutez list users; sur le client MaxCompute pour lister les utilisateurs.

Exemple

Interrogez les tables sensibles de niveau 3 accessibles à l'utilisateur RAM Allen :

show label 3 grants for user RAM$Bob@aliyun.com:Allen;

Sortie :

User Label: 2

+-----------+--------------+--------------------------+
| TableName | GrantedLabel | Expires                  |
+-----------+--------------+--------------------------+
| bank_data | 3            | 2022-07-04T16:29:32+0800 |
+-----------+--------------+--------------------------+

Interroger les utilisateurs autorisés à accéder à une table sensible spécifique

show label grants on table <table_name>;

Paramètres

Paramètre

Obligatoire

Description

table_name

Oui

Nom de la table sensible. Exécutez show tables; sur le client MaxCompute pour lister les tables.

Résultat de la requête

Champ

Description

Sensitive Label Range

Plage des niveaux de libellé de la table

UserName

Utilisateurs et rôles ayant accès à la table

GrantedLabel

Niveau de libellé accordé à chaque utilisateur

Expires

Date d'expiration de l'autorisation

Exemple

Interrogez les utilisateurs pouvant accéder à la table sale_detail dans test_project_a :

show label grants on table sale_detail;

Sortie :

Sensitive Label Range: [3, 4]

+-------------------------------------------------+--------------+--------------------------+
| UserName                                        | GrantedLabel | Expires                  |
+-------------------------------------------------+--------------+--------------------------+
| worker                                          | 4            | 2022-07-04T11:23:35+0800 |
+-------------------------------------------------+--------------+--------------------------+
| RAM$Bob@aliyun.com:Allen                        | 4            | 2022-07-04T17:54:00+0800 |
+-------------------------------------------------+--------------+--------------------------+

Interroger les utilisateurs d'un niveau spécifique pouvant accéder à une table sensible donnée

show label <level> grants on table <table_name>;

Paramètres

Paramètre

Obligatoire

Description

level

Oui

Niveau de sensibilité servant de filtre (1–4)

table_name

Oui

Nom de la table sensible. Exécutez show tables; sur le client MaxCompute pour lister les tables.

Exemple

Interrogez les utilisateurs de niveau 4 pouvant accéder à la table sale_detail :

show label 4 grants on table sale_detail;

Sortie :

Sensitive Label Range: [3, 4]

+-------------------------------------------------+--------------+--------------------------+
| UserName                                        | GrantedLabel | Expires                  |
+-------------------------------------------------+--------------+--------------------------+
| worker                                          | 4            | 2022-07-04T11:23:35+0800 |
+-------------------------------------------------+--------------+--------------------------+
| RAM$Bob@aliyun.com:Allen                        | 4            | 2022-07-04T17:54:00+0800 |
+-------------------------------------------------+--------------+--------------------------+

Interroger les autorisations d'un utilisateur spécifique sur une table sensible donnée

show label [<level>] grants on table <table_name> for user <user_name>;

Paramètres

Paramètre

Obligatoire

Description

level

Non

Niveau de sensibilité servant de filtre (1–4). Omettez ce paramètre pour retourner tous les niveaux.

table_name

Oui

Nom de la table sensible. Exécutez show tables; sur le client MaxCompute pour lister les tables.

user_name

Oui

Nom de l'utilisateur. Exécutez list users; sur le client MaxCompute pour lister les utilisateurs.

Résultat de la requête

Champ

Description

User Label

Niveau de libellé d'accès de l'utilisateur

Column

Colonnes de la table accessibles à l'utilisateur

GrantedLabel

Niveau de libellé accordé à l'utilisateur pour chaque colonne

Expires

Date d'expiration de l'autorisation

Exemple

Identifiez les colonnes de la table sale_detail accessibles à l'utilisateur RAM Allen :

show label grants on table sale_detail for user RAM$Bob@aliyun.com:Allen;

Sortie :

User Label: 2
+-------------+--------------+--------------------------+
| Column      | GrantedLabel | Expires                  |
+-------------+--------------+--------------------------+
| customer_id | 4            | 2022-07-04T17:54:00+0800 |
+-------------+--------------+--------------------------+
| shop_name   | 4            | 2022-07-04T17:54:00+0800 |
+-------------+--------------+--------------------------+
| total_price | 4            | 2022-07-04T17:54:00+0800 |
+-------------+--------------+--------------------------+

Interroger les niveaux de sensibilité de toutes les colonnes d'une table spécifique

describe <table_name>;

Paramètres

Paramètre

Obligatoire

Description

table_name

Oui

Nom de la table. Exécutez show tables; sur le client MaxCompute pour lister les tables.

Résultat de la requête : Retourne TableLabel (niveau de sensibilité global de la table), MaxLabel (libellé de sensibilité le plus élevé parmi les colonnes de la table) et Label (niveau de sensibilité de chaque colonne).

Exemple

Interrogez les niveaux de sensibilité de la table sale_detail et de ses colonnes :

describe sale_detail;

Sortie :

+------------------------------------------------------------------------------------+
| Owner: ALIYUN$Bob@aliyun.com | Project: project_test_a                             |
| TableComment:                                                                      |
+------------------------------------------------------------------------------------+
| CreateTime:               2021-12-13 11:27:04                                      |
| LastDDLTime:              2021-12-13 11:27:04                                      |
| LastModifiedTime:         2021-12-13 11:27:26                                      |
+------------------------------------------------------------------------------------+
| TableLabel:               3                                                        |
| MaxLabel:                 L4                                                       |
+------------------------------------------------------------------------------------+
| InternalTable: YES      | Size: 784                                                |
+------------------------------------------------------------------------------------+
| Native Columns:                                                                    |
+------------------------------------------------------------------------------------+
| Field           | Type       | Label | Comment                                     |
+------------------------------------------------------------------------------------+
| shop_name       | string     | 4     |                                             |
| customer_id     | string     | 4     |                                             |
| total_price     | double     | 3     |                                             |
+------------------------------------------------------------------------------------+
| Partition Columns:                                                                 |
+------------------------------------------------------------------------------------+
| sale_date       | string     |                                                     |
| region          | string     |                                                     |
+------------------------------------------------------------------------------------+

Interroger les autorisations de package

Interroger les autorisations d'un package spécifique

show acl for <project_name>.<package_name> on type package;

Paramètres

Paramètre

Obligatoire

Description

project_name

Oui

Nom du projet auquel appartient le package. Exécutez describe package <package_name>; sur le client MaxCompute pour trouver le nom du projet.

package_name

Oui

Nom du package. Exécutez show packages; sur le client MaxCompute pour lister les packages.

Résultat de la requête : Retourne les rôles intégrés et les utilisateurs disposant d'autorisations de gestion sur le package, ainsi que leurs autorisations ACL associées.

Exemple

Interrogez les autorisations du package datashare installé dans test_project_b :

show acl for test_project_b.datashare on type package;

Sortie :

Authorization Type: Implicit
AG      project_owner/ALIYUN$Bob@aliyun.com: All
AG      admin/ALIYUN$Bob@aliyun.com: All

Authorization Type: ACL
A       user/RAM$Amy@aliyun.com:Bella(acs:odps:*:projects/test_project_b/packages/test_project_a.datashare): Read

Interroger les autorisations d'un objet dans un package spécifique

show grants on <object_type> <object_name> privilegeproperties ("refobject"="true", "refproject"="<project_name>", "package"="<package_name>");

Paramètres

Paramètre

Obligatoire

Description

object_type

Oui

Type de l'objet dans le package. Exécutez describe package <project_name>.<package_name>; sur le client MaxCompute pour déterminer le type.

object_name

Oui

Nom de l'objet dans le package. Exécutez describe package <project_name>.<package_name>; pour trouver le nom.

project_name

Oui

Nom du projet auquel appartient le package. Exécutez describe package <project_name>.<package_name>; pour trouver le nom du projet.

package_name

Oui

Nom du package. Exécutez show packages; sur le client MaxCompute pour lister les packages.

Résultat de la requête : Retourne les rôles intégrés et les utilisateurs disposant d'autorisations sur l'objet spécifié dans le package, ainsi que leurs autorisations ACL associées.

Exemple

Interrogez les autorisations sur la table sale_detail dans le package datashare :

show grants on Table sale_detail privilegeproperties ("refobject"="true", "refproject"="test_project_a", "package"="datashare");

Sortie :

Authorization Type: Implicit
AG      project_owner/: All

Authorization Type: InstalledObjecACL
[datashare]
A       user/RAM$Amy@aliyun.com:Bella(acs:odps:*:projects/test_project_a/tables/sale_detail): Select

Interroger les autorisations basées sur les libellés d'une table dans un package spécifique

show label grants on table <table_name> privilegeproperties ("refobject"="true", "refproject"="<project_name>", "package"="<package_name>");

Paramètres

Paramètre

Obligatoire

Description

table_name

Oui

Nom de la table dans le package. Exécutez describe package <project_name>.<package_name>; sur le client MaxCompute pour trouver le nom de la table.

project_name

Oui

Nom du projet auquel appartient le package. Exécutez describe package <package_name>; pour trouver le nom du projet.

package_name

Oui

Nom du package. Exécutez show packages; sur le client MaxCompute pour lister les packages.

Résultat de la requête

Champ

Description

Sensitive Label Range

Plage des niveaux de libellé de la table

UserName

Utilisateurs et rôles disposant d'un accès basé sur les libellés à la table

GrantedLabel

Niveau de libellé accordé à chaque utilisateur

Expires

Date d'expiration de l'autorisation

Exemple

Interrogez les autorisations basées sur les libellés de la table sale_detail dans le package datashare :

show label grants on table sale_detail privilegeproperties ("refobject"="true", "refproject"="test_project_a", "package"="datashare");

Sortie :

Sensitive Label Range: [2, 4]

+-------------------------------------------------+--------------+--------------------------+
| UserName                                        | GrantedLabel | Expires                  |
+-------------------------------------------------+--------------+--------------------------+
| RAM$Amy@aliyun.com:Bella                        | 3            | 2022-07-12T22:24:24+0800 |
+-------------------------------------------------+--------------+--------------------------+