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

MaxCompute:コマンドを使用したユーザー権限の管理

最終更新日:Nov 09, 2025

ユーザーを MaxCompute プロジェクトに追加した後、そのユーザーに権限を付与する必要があります。 ユーザーは、必要な権限を付与された後にのみ、プロジェクトで操作を実行できます。 MaxCompute では、ロールを割り当てるか、権限を直接付与することで、ユーザーに権限を付与できます。 このトピックでは、ユーザー権限付与のコマンド構文と例について説明します。

プロジェクトレベルのロールをユーザーに割り当てることによるユーザーへの権限付与

プロジェクトレベルのカスタムロールまたは組み込みの管理者ロールをユーザーに割り当てることを推奨します。 ユーザーにロールを割り当てると、そのユーザーはロールと同じ権限を持つことになります。 これにより、複数のユーザーの権限を一度に変更または削除できます。

説明

ユーザーへのプロジェクトレベルのロールの割り当て

プロジェクトレベルの組み込みロールまたはカスタムロールをユーザーに割り当てると、そのユーザーにはロールの権限が付与されます。

  • 構文

    grant <role_name> to <user_name>;
  • 注意事項

    複数のユーザーに同じプロジェクトレベルのロールを割り当てることができ、1 人のユーザーに複数のプロジェクトレベルのロールを割り当てることもできます。

  • パラメーター

    パラメーター

    必須

    説明

    role_name

    はい

    ユーザーに割り当てるロールの名前。

    MaxCompute クライアントlist roles; コマンドを実行して、ロール情報を表示できます。

    user_name

    はい

    ロールを割り当てるユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

    MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

  • プロジェクトレベルのロール Worker を Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5788、RAM ユーザー RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649、および RAM ロール RAM$5527xxxxxxxx5788:role/ram_role に割り当てます。

    -- test_project_a プロジェクトに移動します。
    use test_project_a;
    -- プロジェクトレベルのロール Worker を Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5788 に割り当てます。
    grant Worker to ALIYUN$5527xxxxxxxx5788;
    -- プロジェクトレベルのロール Worker を RAM ユーザー RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649 に割り当てます。
    grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
    -- プロジェクトレベルのロール Worker を RAM ロール `RAM$5527xxxxxxxx5788:role/ram_role` に割り当てます。
    grant Worker to `RAM$5527xxxxxxxx5788:role/ram_role`;

ユーザーに割り当てられたプロジェクトレベルのロールの取り消し

ユーザーからロールを取り消すと、そのユーザーはロールの権限を持たなくなります。

  • 構文

    revoke <role_name> from <user_name>;
  • パラメーター

    パラメーター

    必須

    説明

    role_name

    はい

    ユーザーから取り消すロールの名前。

    MaxCompute クライアントlist roles; コマンドを実行して、ロール名を取得できます。

    user_name

    はい

    ロールを取り消すユーザーの名前。 ユーザー名は、次のいずれかのフォーマットにすることができます。

    MaxCompute クライアントlist users; コマンドを実行して、ユーザー名を取得できます。

  • Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5788、RAM ユーザー RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649、および RAM ロール RAM$5527xxxxxxxx5788:role/ram_role から Worker ロールを取り消します。

    -- test_project_a プロジェクトに移動します。
    use test_project_a;
    -- Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5788 からプロジェクトレベルのロール Worker を取り消します。
    revoke Worker from ALIYUN$5527xxxxxxxx5788;
    -- RAM ユーザー RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649 からプロジェクトレベルのロール Worker を取り消します。
    revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
    -- RAM ロール `RAM$5527xxxxxxxx5788:role/ram_role` からプロジェクトレベルのロール Worker を取り消します。
    revoke Worker from `RAM$5527xxxxxxxx5788:role/ram_role`;

一般的な権限付与シナリオ

ユーザー権限付与シナリオ

メソッド

権限付与者

権限付与

ロールをユーザーに割り当てることによるオブジェクトの操作権限のユーザーへの付与

ACL ベースのアクセスの制御またはポリシーベースのアクセスの制御を使用してロールに権限を付与し、そのロールをユーザーに割り当てます。

詳細については、「プロジェクトおよびプロジェクト内のオブジェクトに対する権限」の「権限リスト」セクションの「権限付与者」列の内容をご参照ください。

特定のロールが割り当てられているユーザーからのオブジェクトの操作権限の取り消し

ロールをユーザーに割り当てることによるダウンロード権限のユーザーへの付与

ダウンロードコントロールを使用してロールに権限を付与し、そのロールをユーザーに割り当てます。

ユーザーへのロールの割り当てによって付与されたダウンロード権限の取り消し

ロールをユーザーに割り当てることによる高秘密度データへのアクセス権限のユーザーへの付与

ラベルベースのアクセスの制御を使用してロールに権限を付与し、そのロールをユーザーに割り当てます。

ロールをユーザーに割り当てることによる高秘密度データへのアクセス権限のユーザーからの取り消し

ロールをユーザーに割り当てることによるオブジェクトの操作権限のユーザーへの付与

ACL ベースのアクセスの制御またはポリシーベースのアクセスの制御を使用してロールに権限を付与し、そのロールを複数のユーザーに割り当てることができます。

ロールに権限を付与する方法の詳細については、「オブジェクトの操作権限のロールへの付与」をご参照ください。

ALIYUN$5527xxxxxxxx5789 が test_project_a プロジェクトのオーナーであると仮定します。 Allen、Alice、Tom は ALIYUN$5527xxxxxxxx5789 に属する RAM ユーザーです。 3 人の RAM ユーザーに、テーブル、モデル、関数、インスタンスを作成し、プロジェクト内のすべてのタイプのオブジェクトのリストを表示する権限を付与する必要があります。 次のコマンドは例です。

-- test_project_a プロジェクトに移動します。
use test_project_a;
-- RAM ユーザー Allen、Alice、Tom を test_project_a プロジェクトに追加します。
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
-- Worker という名前のロールを作成します。
create role Worker;
-- Worker ロールに必要な権限を付与します。
   -- 方法 1: ACL ベースのアクセスの制御を使用して Worker ロールに権限を付与します。
grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker;
   -- 方法 2: ポリシーベースのアクセスの制御を使用して Worker ロールに権限を付与します。
grant CreateTable, CreateFunction, CreateInstance, List 
      on project test_project_a  
      to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
-- Worker ロールを RAM ユーザーに割り当てます。
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;

特定のロールが割り当てられているユーザーからのオブジェクトの操作権限の取り消し

次のいずれかの方法で、ユーザーから権限を取り消すことができます。

  • ロールから権限を取り消す

    ロールが割り当てられているすべてのユーザーは、このロールの権限を持たなくなります。

  • ユーザーに割り当てられているロールをユーザーから取り消す

    ロールを取り消したユーザーのみが、このロールの権限を持たなくなります。 ロールが割り当てられている他のユーザーの権限は影響を受けません。

ALIYUN$5527xxxxxxxx5789 が test_project_a プロジェクトのオーナーであると仮定します。 Allen、Alice、Tom は ALIYUN$5527xxxxxxxx5789 に属する RAM ユーザーです。 3 人の RAM ユーザーには、Worker ロールを通じて、テーブル、モデル、関数、インスタンスを作成し、プロジェクト内のすべてのタイプのオブジェクトのリストを表示する権限が付与されています。 ここで、オブジェクトの操作権限を取り消す必要があります。 次のコマンドは例です。

  • 方法 1: Worker ロールから権限を取り消します。

    -- test_project_a プロジェクトに入ります。
    use test_project_a;
    -- Worker ロールから権限を取り消します。 これで、Allen、Alice、Tom は CreateTable、CreateFunction、CreateInstance、および List 権限を持たなくなります。
       -- ACL 権限付与を取り消します。
    revoke CreateTable, CreateModel, CreateFunction, CreateInstance, List on project test_project_a from ROLE Worker;
       -- ポリシー権限付与を取り消します。
    revoke CreateTable, CreateModel, CreateFunction, CreateInstance, List 
          on project test_project_a  
          from ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
  • 方法 2: RAM ユーザー Allen に割り当てられている Worker ロールを取り消します。

    -- test_project_a プロジェクトに移動します。
    use test_project_a;
    -- RAM ユーザー Allen に割り当てられている Worker ロールを取り消します。 この場合、RAM ユーザー Allen のみがプロジェクトに対する CreateTable、CreateFunction、CreateInstance、および List 権限を持たなくなります。
    revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;

ロールをユーザーに割り当てることによるダウンロード権限のユーザーへの付与

ダウンロードコントロールメカニズムを使用してロールにダウンロード権限を付与し、そのロールをユーザーに割り当てます。

ロールにダウンロード権限を付与する方法の詳細については、「ロールへのダウンロード権限の付与」をご参照ください。

たとえば、Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 は test_project_a プロジェクトのオーナーです。 ユーザー Allen、Alice、Tom は Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 に属する RAM ユーザーです。 RAM ユーザー Allen、Alice、Tom に指定されたテーブルからデータをダウンロードする権限を付与するには、次のコマンドを実行します。

-- Alibaba Cloud アカウント Bob@aliyun.com を使用して test_project_a プロジェクトに移動します。
use test_project_a;
-- RAM ユーザー Allen、Alice、Tom を test_project_a プロジェクトに追加します。
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
-- Worker という名前のロールを作成します。
create role Worker;
-- Worker ロールに必要な権限を付与します。
grant download on table sale_detail to ROLE Worker;
-- Worker ロールを RAM ユーザーに割り当てます。
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;

ユーザーへのロールの割り当てによって付与されたダウンロード権限の取り消し

次のいずれかの方法で、ユーザーから権限を取り消すことができます。

  • ロールから権限を取り消す

    ロールが割り当てられているすべてのユーザーは、このロールの権限を持たなくなります。

  • ユーザーに割り当てられているロールをユーザーから取り消す

    ロールを取り消したユーザーのみが、このロールの権限を持たなくなります。 ロールが割り当てられている他のユーザーの権限は影響を受けません。

たとえば、Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 は test_project_a プロジェクトのオーナーです。 ユーザー Allen、Alice、Tom は Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 に属する RAM ユーザーです。 Worker ロールを RAM ユーザーに割り当てることで、すべてのテーブルデータをダウンロードする権限を RAM ユーザーに付与しました。 RAM ユーザーからダウンロード権限を取り消すには、次のいずれかの方法を使用できます。

  • 方法 1: Worker ロールから権限を取り消します。

    -- test_project_a プロジェクトに移動します。
    use test_project_a;
    -- Worker ロールから権限を取り消します。 この場合、RAM ユーザー Allen、Alice、Tom はダウンロード権限を持たなくなります。
    revoke Download on table sale_detail from ROLE Worker;
  • 方法 2: RAM ユーザー Allen に割り当てられている Worker ロールを取り消します。

    -- test_project_a プロジェクトに移動します。
    use test_project_a;
    -- RAM ユーザー Allen に割り当てられている Worker ロールを取り消します。 この場合、RAM ユーザー Allen のみがダウンロード権限を持たなくなります。
    revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;

ロールをユーザーに割り当てることによる高秘密度データへのアクセス権限のユーザーへの付与

ラベルベースのアクセスの制御またはポリシーベースのアクセスの制御を使用してロールに権限を付与し、そのロールを複数のユーザーに割り当てます。

ロールに権限を付与する方法の詳細については、「高秘密度データへのアクセス権限のロールへの付与」をご参照ください。

たとえば、Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 は test_project_a プロジェクトのオーナーです。 ユーザー Allen、Alice、Tom は Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 に属する RAM ユーザーです。 RAM ユーザー Allen、Alice、Tom のデータアクセスレベルは 2 です。 プロジェクトの宛先テーブルで秘密度レベルが 4 のデータにアクセスする権限を RAM ユーザーに付与するには、次のコマンドを実行します。

-- test_project_a プロジェクトに移動します。
use test_project_a;
-- Worker という名前のロールを作成します。
create role Worker;
-- Worker ロールに必要な権限を付与します。
grant Label 4 on table <table_name> to ROLE Worker;  -- table_name は宛先テーブルの名前です。
-- Worker ロールを RAM ユーザーに割り当てます。
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;

同じ高秘密度レベルのデータにアクセスするためのユーザーのロールベースの権限の取り消し

次のいずれかの方法で、ユーザーから権限を取り消すことができます。

  • ロールから権限を取り消す

    ロールが割り当てられているすべてのユーザーは、このロールの権限を持たなくなります。

  • ユーザーに割り当てられているロールをユーザーから取り消す

    ロールを取り消したユーザーのみが、このロールの権限を持たなくなります。 ロールが割り当てられている他のユーザーの権限は影響を受けません。

たとえば、Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 は test_project_a プロジェクトのオーナーです。 ユーザー Allen、Alice、Tom は Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 に属する RAM ユーザーです。 プロジェクトのターゲットテーブルで秘密度レベルが 4 のデータにアクセスする権限を RAM ユーザーに付与しました。 ユーザーから高秘密度データへのアクセス権限を取り消すには、次のいずれかの方法を使用できます。

  • 方法 1: Worker ロールから権限を取り消します。

    -- test_project_a プロジェクトに移動します。
    use test_project_a;
    -- Worker ロールから権限を取り消します。 この場合、RAM ユーザー Allen、Alice、Tom は秘密度レベルが 2 のデータにのみアクセスできます。
    revoke Label on table <table_name> from ROLE Worker;     --table_name はターゲットテーブルの名前です。
  • 方法 2: RAM ユーザー Allen に割り当てられている Worker ロールを取り消します。

    -- test_project_a プロジェクトに移動します。
    use test_project_a;
    -- RAM ユーザー Allen に割り当てられている Worker ロールを取り消します。 この場合、RAM ユーザー Allen は秘密度レベルが 2 のデータにのみアクセスでき、RAM ユーザー Alice と Tom は引き続き秘密度レベルが 4 のデータにアクセスできます。
    revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;

ユーザーへの権限の直接付与

MaxCompute では、ユーザーに権限を直接付与できます。 次の表に、一般的な権限付与シナリオを示します。

説明

ユーザー権限付与シナリオ

権限付与メソッド

権限付与者

権限付与

オブジェクトの操作権限のユーザーへの付与

ACL ベースのアクセスの制御

詳細については、「プロジェクトおよびプロジェクト内のオブジェクトに対する権限」の「権限リスト」セクションの「権限付与者」列の内容をご参照ください。

ユーザーからのオブジェクトの操作権限の取り消し

ダウンロード権限のユーザーへの付与

ダウンロードコントロール

ユーザーからのダウンロード権限の取り消し

高秘密度データへのアクセス権限のユーザーへの付与

ラベルベースのアクセスの制御

ユーザーからの高秘密度データへのアクセス権限の取り消し

オブジェクトの操作権限のユーザーへの付与

ACL 権限付与メカニズムを使用して、プロジェクト、テーブル、モデル、リソース、関数、またはインスタンスに対するユーザーの操作権限を付与できます。

  • 指定されたプロジェクトの権限のユーザーへの付与

    • 構文

      grant Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
            on project <project_name> 
            to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
    • パラメーター

      パラメーター

      必須

      説明

      project_name

      はい

      プロジェクトの名前。 MaxCompute プロジェクトの名前を表示するには、MaxCompute コンソールにログインします。 上部のナビゲーションバーでリージョンを選択します。 次に、[プロジェクト管理] タブで MaxCompute プロジェクトの名前を表示します。

      user_name

      はい

      ロールを割り当てるユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • テーブルの権限のユーザーへの付与

    • 構文

      grant Describe|Select|Alter|Update|Drop|ShowHistory|All 
            on table <table_name> [(<column_list>)] 
            to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
    • パラメーター

      パラメーター

      必須

      説明

      table_name

      はい

      テーブルの名前。 MaxCompute クライアントshow tables; コマンドを実行して、テーブルまたはビュー名を取得できます。

      user_name

      はい

      ロールを割り当てるユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • モデルの操作権限のユーザーへの付与

    • 構文

      grant Describe|Execute|Alter|Drop|All
            on MODEL <model_name>
            to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
    • パラメーター

      • model_name: 必須。 モデルの名前。 MaxCompute クライアントlist models; コマンドを実行して、モデル名を取得できます。

  • リソースの権限のユーザーへの付与

    • 構文

      grant Read|Write|Delete|All 
            on resource <resource_name> 
            to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
    • パラメーター

      パラメーター

      必須

      説明

      resource_name

      はい

      リソースの名前。 MaxCompute クライアントlist resources; コマンドを実行して、リソース名を取得できます。

      user_name

      はい

      ロールを割り当てるユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • 関数の権限のユーザーへの付与

    • 構文

      grant Read|Write|Delete|Execute|All 
            on function <function_name> 
            to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
    • パラメーター

      パラメーター

      必須

      説明

      function_name

      はい

      関数の名前。 MaxCompute クライアントlist functions; コマンドを実行して、関数名を取得できます。

      user_name

      はい

      ロールを割り当てるユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • インスタンスの権限のユーザーへの付与

    • 構文

      grant Read|Write|All 
            on instance <instance_id> 
            to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
    • パラメーター

      パラメーター

      必須

      説明

      instance_id

      はい

      インスタンスの ID。 MaxCompute クライアントshow instances; コマンドを実行して、インスタンス ID を取得できます。

      user_name

      はい

      ロールを割り当てるユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • たとえば、Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 は test_project_a プロジェクトのオーナーです。 ユーザー Allen、Alice、Tom は Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 に属する RAM ユーザーです。 RAM$5527xxxxxxxx5789:role/ram_role は Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 に属する RAM ロールです。 Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5788 を test_project_a プロジェクトに追加する必要があります。

    • 例 1: Alibaba Cloud アカウント Kate@aliyun.com に、テーブル、関数、インスタンスを作成し、プロジェクト内のすべてのタイプのオブジェクトのリストをクエリする権限を付与します。 コマンドの例:

      -- Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 を使用して test_project_a プロジェクトに移動します。
      use test_project_a;
      -- Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5788 を test_project_a プロジェクトに追加します。
      add user ALIYUN$5527xxxxxxxx5788;
      -- Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5789 を使用して、Alibaba Cloud アカウント ALIYUN$5527xxxxxxxx5788 にプロジェクトで必要な権限を付与します。
      grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to user ALIYUN$5527xxxxxxxx5788;
    • 例 2: RAM ユーザー Allen と RAM ロール BI_Analyst に、テーブルを作成し、プロジェクト内のすべてのタイプのオブジェクトのリストをクエリし、テーブル上のメタデータとテーブルデータを読み取る権限を付与します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Allen を test_project_a プロジェクトに追加します。
      add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
      -- RAM ロール BI_Analyst を test_project_a プロジェクトに追加します。
      add user `RAM$5527xxxxxxxx5789:role/ram_role`;
      -- RAM ユーザー Allen に必要な権限を付与します。
      grant CreateTable, List on project test_project_a to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
      grant Describe, Select on table sale_detail to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
      -- RAM ロール RAM$5527xxxxxxxx5789:role/ram_role に必要な権限を付与します。
      grant CreateTable, List on project test_project_a to USER `RAM$5527xxxxxxxx5789:role/ram_role`;
      grant Describe, Select on table sale_detail to USER `RAM$5527xxxxxxxx5789:role/ram_role`;
    • 例 3: RAM ユーザー Alice に、リソースからデータを読み取り、リソースを更新する権限を付与します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Alice を test_project_a プロジェクトに追加します。
      add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1650;
      -- RAM ユーザー Alice にリソースで必要な権限を付与します。
      grant Read, Write on resource udtf.jar to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1650;
    • 例 4: RAM ユーザー Tom に、関数からデータを読み取り、関数を更新する権限を付与します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Tom を test_project_a プロジェクトに追加します。
      add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;
      -- RAM ユーザー Tom に関数で必要な権限を付与します。
      grant Read, Write on function udf_test to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;
    • 例 5: RAM ユーザー Tom にインスタンスに対するすべての権限を付与します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Tom を test_project_a プロジェクトに追加します。
      add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
      -- RAM ユーザー Tom に関数で必要な権限を付与します。
      grant All on instance 202112300224**** to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;

ユーザーからのオブジェクトの操作権限の取り消し

プロジェクト、テーブル、モデル、リソース、関数、またはインスタンスに対するユーザーの操作権限を取り消すことができます。

  • ユーザーからのプロジェクトの権限の取り消し

    • 構文

      revoke Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
            on project <project_name> 
            from USER <user_name>;
    • パラメーター

      パラメーター

      必須

      説明

      project_name

      はい

      プロジェクトの名前。 MaxCompute プロジェクトの名前を表示するには、MaxCompute コンソールにログインします。 上部のナビゲーションバーでリージョンを選択します。 次に、[プロジェクト管理] タブで MaxCompute プロジェクトの名前を表示します。

      user_name

      はい

      ロールを取り消すユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • ユーザーからのテーブルの権限の取り消し

    • 構文

      revoke Describe|Select|Alter|Update|Drop|ShowHistory|All 
            on table <table_name> [(<column_list>)] 
            from USER <user_name>;
    • パラメーター

      パラメーター

      必須

      説明

      table_name

      はい

      テーブルの名前。 MaxCompute クライアントshow tables; コマンドを実行して、テーブルまたはビュー名を取得できます。

      user_name

      はい

      ロールを取り消すユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • ユーザーからのモデルの操作権限の取り消し

    • 構文

      revoke Describe|Execute|Alter|Drop|All
            on MODEL <model_name> 
            from USER <user_name>;
    • パラメーター

      • model_name: 必須。 モデルの名前。 MaxCompute クライアントlist models; コマンドを実行して、モデル名を取得できます。

  • ユーザーからのリソースの権限の取り消し

    • 構文

      revoke Read|Write|Delete|All 
            on resource <resource_name> 
            from USER <user_name>;
    • パラメーター

      パラメーター

      必須

      説明

      resource_name

      はい

      リソースの名前。 MaxCompute クライアントlist resources; コマンドを実行して、リソース名を取得できます。

      user_name

      はい

      ロールを取り消すユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • ユーザーからの指定された関数の権限の取り消し

    • 構文

      revoke Read|Write|Delete|Execute|All 
            on function <function_name> 
            from USER <user_name>;
    • パラメーター

      パラメーター

      必須

      説明

      function_name

      はい

      関数の名前。 MaxCompute クライアントlist functions; コマンドを実行して、関数名を取得できます。

      user_name

      はい

      ロールを取り消すユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • ユーザーからのインスタンスの権限の取り消し

    • 構文

      revoke Read|Write|All 
            on instance <instance_id> 
            from USER <user_name>;
    • パラメーター

      パラメーター

      必須

      説明

      instance_id

      はい

      インスタンスの ID。 MaxCompute クライアントshow instances; コマンドを実行して、インスタンス ID を取得できます。

      user_name

      はい

      ロールを取り消すユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      privilegeproperties

      conditions

      いいえ

      リクエストソースやアクセス方法などのディメンションに基づいて権限をコントロールします。 フォーマットは "<var_name> <Operation> constant" and "<var_name> <Operation> constant" and ... です。 サポートされている var_nameOperation の値のリストについては、「条件」をご参照ください。

      days

      いいえ

      権限が有効である期間。 単位: 日。 このパラメーターを設定しない場合、権限は永続的に有効になります。 このパラメーターを設定すると、MaxCompute はこのパラメーターで指定された期間が経過した後に権限に関する情報をクリアします。

  • Alibaba Cloud アカウントおよびRAM ユーザーからオブジェクトの操作権限を取り消します。 コマンドの例:

    • 例 1: Alibaba Cloud アカウント Kate@aliyun.com から、テーブル、関数、インスタンスを作成し、プロジェクト内のすべてのタイプのオブジェクトのリストをクエリする権限を取り消します。 コマンドの例:

      --test_project_a プロジェクトに入ります。
      use test_project_a;
      --Alibaba Cloud ユーザーの権限付与を取り消します。
      revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from user ALIYUN$5527xxxxxxxx5788;
    • 例 2: RAM ユーザー Allen から、テーブル上のメタデータとテーブルデータを読み取る権限を取り消します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Allen からテーブルの権限を取り消します。
      revoke Describe, Select on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
    • 例 3: RAM ユーザー Alice から、リソースからデータを読み取り、リソースを更新する権限を取り消します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Alice からリソースの権限を取り消します。
      revoke Read, Write on resource udtf.jar from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
    • 例 4: RAM ユーザー Tom から、関数からデータを読み取り、関数を更新する権限を取り消します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Tom からインスタンスの権限を取り消します。
      revoke Read, Write on function udf_test from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
    • 例 5: RAM ユーザー Tom からインスタンスに対するすべての権限を取り消します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Tom からインスタンスの権限を取り消します。
      revoke All on instance 202112300224**** from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
  • ダウンロード権限のユーザーへの付与

    テーブルデータ、リソース、関数、またはインスタンスをダウンロードする権限をユーザーに付与します。

    • 構文

      grant Download on {Table|Resource|Function|Instance} <object_name> to USER <user_name>;
    • パラメーター

      パラメーター

      必須

      説明

      object_name

      はい

      権限が付与されるオブジェクトの名前。 次のいずれかの方法でオブジェクト名を取得できます。

      user_name

      はい

      ロールを割り当てるユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

    • test_project_a プロジェクトでダウンロードコントロールが有効になっています。 RAM ユーザー Allen に指定されたテーブルからデータをダウンロードする権限を付与するには、次のコマンドを実行します。

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Allen にダウンロード権限を付与します。
      grant Download on table sale_detail to USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
  • ユーザーからのダウンロード権限の取り消し

    ユーザーからテーブルデータ、リソース、関数、またはインスタンスをダウンロードする権限を取り消します。

    • 構文

      revoke Download on {Table|Resource|Function|Instance} <object_name> from USER <user_name>;
    • パラメーター

      パラメーター

      必須

      説明

      object_name

      はい

      ユーザーから取り消す権限を持つオブジェクトの名前。 次のいずれかの方法でオブジェクト名を取得できます。

      user_name

      はい

      ロールを取り消すユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

    • RAM ユーザー Allen から指定されたテーブルからデータをダウンロードする権限を取り消します。 コマンドの例:

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Allen からテーブルの権限を取り消します。
      revoke Download on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
  • 高秘密度データへのアクセス権限のユーザーへの付与

    ラベルベースのアクセスの制御を使用して、高秘密度データへのアクセス権限をユーザーに付与します。

    • 構文

      grant Label <number> on table <table_name> [(<column_list>)] to USER <user_name> [with exp <days>];
    • パラメーター

      パラメーター

      必須

      説明

      number

      はい

      ユーザーまたはロールがアクセスできるデータの最高秘密度レベル。

      有効値の範囲は 0 から 9 で、データの秘密度レベルのラベルに対応します。

      table_name

      はい

      テーブルまたはビューの名前。

      MaxCompute クライアントshow tables; コマンドを実行して、テーブルまたはビュー名を取得できます。

      column_list

      いいえ

      テーブルまたはビューの特定の列に対する権限を付与または取り消す場合に、このパラメーターは必須です。 1 回の権限付与操作で複数の列名を指定できます。 列名はコンマ (,) で区切ります。

      user_name

      はい

      ロールを割り当てるユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

      days

      いいえ

      権限が有効である期間。 単位: 日。 有効値: 0 から 263 - 1。 このパラメーターを指定しない場合、デフォルトの有効期限は 180 日です。

    • test_project_a プロジェクトにおける RAM ユーザー Allen のデータアクセスレベルは 2 です。 sale_detail テーブルで秘密度レベルが 4 のデータにアクセスする権限を RAM ユーザー Allen に付与するには、次のコマンドを実行します。

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Allen に必要な権限を付与します。
      grant Label 4 on table sale_detail to USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
  • ユーザーからの高秘密度データへのアクセス権限の取り消し

    • 構文

      revoke Label <number> on table <table_name> [(<column_list>)] from USER <user_name>;
    • パラメーター

      パラメーター

      必須

      説明

      number

      はい

      ユーザーまたはロールから取り消すアクセス権限を持つデータの最高秘密度レベル。

      有効値の範囲は 0 から 9 で、データの秘密度レベルのラベルに対応します。

      table_name

      はい

      ユーザーから取り消すアクセス権限を持つテーブルまたはビューの名前。

      MaxCompute クライアントshow tables; コマンドを実行して、テーブルまたはビュー名を取得できます。

      column_list

      いいえ

      テーブルまたはビューの指定された列に対するアクセス権限をユーザーまたはロールから取り消す場合に、このパラメーターは必須です。 1 回の権限付与操作で複数の列名を指定できます。 列名はコンマ (,) で区切ります。

      user_name

      はい

      ロールを取り消すユーザーの名前。 ユーザーは MaxCompute プロジェクトに追加されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

      MaxCompute クライアントlist users; コマンドを実行して、ユーザー情報を表示できます。

    • sale_detail テーブルで秘密度レベルが 4 のデータにアクセスする権限を RAM ユーザー Allen から取り消すには、次のコマンドを実行します。

      -- test_project_a プロジェクトに移動します。
      use test_project_a;
      -- RAM ユーザー Allen から権限を取り消します。
      revoke Label 4 on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;

削除されたユーザーの残存権限情報の完全な消去

ユーザーがプロジェクトから削除された後、ACL ベース、ラベルベース、ポリシーベースの権限などの権限はプロジェクトに保持されます。 削除されたユーザーが再びプロジェクトに追加されると、そのユーザーは元の ACL ベース、ラベルベース、ポリシーベースの権限を持つことになります。 ユーザーが誤って削除され、プロジェクトに再度追加された場合、ユーザーは元の権限を保持します。 ただし、ユーザーが異なるロールで元のプロジェクトに再度追加された場合、データセキュリティの潜在的なリスクが発生する可能性があります。

潜在的なリスクを防ぐために、MaxCompute ではユーザーに付与されたすべての権限をクリアできます。 ユーザーがプロジェクトに存在しなくなったが、ACL ベース、ラベルベース、ポリシーベースの権限をまだ持っている場合、プロジェクトのオーナーまたは Admin または Super_Administrator ロールが割り当てられたユーザーは、削除されたユーザーの残存権限情報をクリアできます。 コマンドの例:

  • 構文

purge privs from user <user_name>;
  • パラメーター

    パラメーター

    必須

    説明

    user_name

    はい

    残存権限情報を完全に削除するユーザーの名前。 ユーザーは MaxCompute プロジェクトから削除されます。 ユーザー名は、次のいずれかのフォーマットにすることができます。

説明

プロジェクトにまだ存在するユーザーに対してこのコマンドを実行すると、エラー "Principal <username> still exist in the project" が返されます。 まず、remove user <user_name> コマンドを実行して、プロジェクトからユーザーを削除する必要があります。

次のステップ

ユーザー権限付与が完了したら、ユーザーに付与された権限をクエリできます。 詳細については、「権限のクエリ」をご参照ください。