すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:LABEL の付与

最終更新日:Mar 26, 2026

ユーザーまたはロールに対して、デフォルトのアクセスレベルを超える感度レベルでのデータへのアクセスを許可します。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • 対象の MaxCompute プロジェクトにおいて、Project Owner または Admin のロールを有すること

  • アクセスを許可するテーブルまたはビューの名前です(show tables;MaxCompute クライアント で実行して確認します)

  • アクセス権を付与するユーザーまたはロールの名前(確認するには、MaxCompute クライアントで list users; または list roles; を実行します)

注意事項

列レベルの LABEL 付与は、同一ユーザーに対するテーブルレベルの LABEL 付与をオーバーライドします。

構文

grant Label <number> on table <table_name> [(<column_list>)] to {USER|ROLE} <name> [with exp <days>];

パラメーター

パラメーター必須説明
numberはい付与する最高感度レベル。有効な値:0~9(感度レベルに対応する LABEL)。
table_nameはいテーブルまたはビューの名前。
column_listいいえLABEL アクセスを許可する列。複数の列を指定する場合は、カンマ(,)で区切ります。省略した場合、付与はテーブル全体に適用されます。
nameはいユーザーまたはロールの名前。
daysいいえ権限の有効期間(日単位)。有効な値:0 ~ 2<sup>63</sup> − 1。デフォルト値:180 日。

以下の例では、test_project_a プロジェクトを使用します。このプロジェクトには、shop_namecustomer_id、および total_price の列を持つ sale_detail テーブルが含まれています。Bob@aliyun.com はプロジェクトオーナーです。AllenBob@aliyun.com に所属する RAM ユーザーであり、test_project_a のメンバーです。

ユーザーに対するテーブルレベルの LABEL アクセスの付与

Allen に、感度レベル 3 以下で sale_detail 内のすべてのデータへのアクセスを付与します。有効期間は 4 日間です。

-- Bob@aliyun.com としてプロジェクトに切り替えます
use test_project_a;

-- sale_detail テーブルの感度レベル 3 以下にあるデータへのアクセスを Allen に付与します(有効期限は 4 日間)
grant Label 3 on table sale_detail to USER RAM$Bob@aliyun.com:Allen with exp 4;

-- 権限付与を確認します
show label grants on table sale_detail for USER RAM$Bob@aliyun.com:Allen;

出力結果には、各列に対する付与された LABEL および有効期限が表示されます。

User Label: 1
+-------------+--------------+--------------------------+
| Column      | GrantedLabel | Expires                  |
+-------------+--------------+--------------------------+
| total_price | 3            | 2021-12-31T19:56:18+0800 |
+-------------+--------------+--------------------------+

ユーザーに対する列レベルの LABEL アクセスの付与

Allen ユーザーに、感度レベル 4 以下で特定の列 (shop_namecustomer_idtotal_price) へのアクセスを付与します。有効期間は 10 日間です。列レベルの権限付与は、同一ユーザーに対する既存のテーブルレベルの権限付与をオーバーライドします。

-- 感度レベル 4 以下で特定の列のデータへの Allen のアクセスを許可し、10 日間有効
grant Label 4 on table sale_detail(shop_name, customer_id, total_price) to USER RAM$Bob@aliyun.com:Allen with exp 10;

-- 許可を確認する
show label grants on table sale_detail for USER RAM$Bob@aliyun.com:Allen;

出力結果には、列レベルの付与内容が確認できます。

User Label: 1
+-------------+--------------+--------------------------+
| Column      | GrantedLabel | Expires                  |
+-------------+--------------+--------------------------+
| customer_id | 4            | 2022-01-06T19:58:00+0800 |
+-------------+--------------+--------------------------+
| shop_name   | 4            | 2022-01-06T19:58:00+0800 |
+-------------+--------------+--------------------------+
| total_price | 4            | 2022-01-06T19:58:00+0800 |
+-------------+--------------+--------------------------+

ロールに対する LABEL アクセスの付与

複数のユーザーに対して一度に LABEL アクセスを適用するには、個別のユーザーではなくロールに対して LABEL を付与します。以下の例では、sale_detail のデータを感度レベル 3 以下で data_analyst ロールに 30 日間有効な形でアクセスを許可します。

grant Label 3 on table sale_detail to ROLE data_analyst with exp 30;

次のステップ

  • SET LABEL:ユーザーまたはロールに LABEL アクセスを付与する前に、テーブルまたは列に感度レベルの LABEL を設定します。

  • REVOKE:アクセスが必要なくなった場合、ユーザーまたはロールから明示的に付与された LABEL を削除します。

  • CLEAR EXPIRED GRANTS:有効期限が切れた権限をクリーンアップします。