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

MaxCompute:GRANT

最終更新日:Dec 12, 2024

MaxComputeは、ACLベースのアクセス制御方法とポリシーベースのアクセス制御方法を提供します。 これらのメソッドを使用して、オブジェクトに対する権限をユーザーまたはロールに付与し、オブジェクトに対する1つ以上の指定されたアクションを許可できます。 ACLはアクセス制御リストの略です。 このトピックでは、ACLベースのアクセス制御とポリシーベースのアクセス制御を実行するために使用できるステートメントについて説明します。 このトピックでは、ポリシーベースのアクセス制御とACLベースのアクセス制御を実行する方法の例も示します。

ACLベースのアクセス制御

  • 前提条件

    ACLベースのアクセス制御方法を使用する前に、次の条件が満たされていることを確認してください。

    • 権限を付与するユーザーのアカウントまたは権限を付与するロールの名前を取得します。 ロールまたはアカウントがMaxComputeプロジェクトに追加されます。 ユーザーのアカウントがAlibaba Cloudアカウントの場合、Alibaba CloudアカウントをALIYUN$Alibaba Cloudアカウントの形式で記録します。 ユーザーのアカウントがRAMユーザーの場合、RAMユーザーが属するRAM$Alibaba Cloudアカウント: RAMユーザーの名前の形式でRAMユーザーを記録します。

      MaxComputeクライアントlist users; またはlist roles; ステートメントを実行して、ユーザーアカウントまたはロールの名前を照会できます。

      ユーザーまたはロールを追加する場合は、「ユーザー計画と管理」または「ロール計画」をご参照ください。

    • アクセス許可を付与するオブジェクトの種類、オブジェクトの名前、およびオブジェクトに対して許可するアクションが取得されます。

      オブジェクトタイプと各タイプのオブジェクトでサポートされているアクションの詳細については、「MaxComputeのアクセス許可」をご参照ください。

  • 制限事項

    ACLベースのアクセス制御方法を使用する前に、次の制限事項に注意してください。

    • ACLベースのアクセス制御方法を使用して、既存のオブジェクトと既存のサブジェクトに対してのみ権限を付与できます。 オブジェクトを削除してから同じ名前のオブジェクトを作成した場合、新しいオブジェクトは削除されたオブジェクトに対する権限を継承しません。

    • ACLベースのアクセス制御方法は、[with grant option] 句を使用した承認をサポートしていません。 たとえば、ユーザーAがユーザーBにオブジェクトへのアクセスを許可する場合、ユーザーBはユーザーCに同じオブジェクトへのアクセスを許可できません。

    • ACLベースのアクセス制御方法は、ホワイトリストメカニズムのみに基づいて実装されます。 このメソッドを使用してオブジェクトに対する操作を拒否することはできません。

  • 注意事項

    ACLベースのアクセス制御方法を使用する前に、次の項目に注意してください。

    • オブジェクトを削除すると、MaxComputeはACLベースのアクセス制御方法を使用して付与されたオブジェクトに対するすべての権限を取り消します。

    • ユーザーが削除されると、ユーザーに付与された権限は保持されます。 ユーザーがプロジェクトに再度追加されると、ユーザーの履歴アクセス権限が再度有効になります。 削除されたユーザーの残りの権限情報をクリアする方法の詳細については、「削除されたユーザーの残りの権限情報を完全にクリアする」をご参照ください。

  • 構文

    次のコードは、ACLベースのアクセス制御を実行するために使用できるGRANTステートメントの構文を示しています。

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

      grant <actions> on <object_type> <object_name> 
      [(<column_list>)] to <subject_type> <subject_name> 
      [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
    • 列レベルのアクセス制御

      grant <actions> on table <table_name> (<column_list>) to <subject_type> <subject_name>;
      revoke <actions> on table <table_name> (<column_list>) from <subject_type> <subject_name>;

      次の表に、上記の構文で使用されるパラメーターを示します。

      パラメーター

      必須

      説明

      actions

      必須

      許可されているアクション。 1つのステートメントで1つ以上のアクションを指定できます。

      複数のアクションを指定する場合は、コンマ (,) で区切ります。 サポートされているアクションの詳細については、「MaxCompute権限」をご参照ください。

      object_type

      必須

      権限が付与されるオブジェクトのタイプ。 1つのステートメントで指定できるオブジェクトの種類は1つだけです。

      サポートされているオブジェクトタイプの詳細については、「MaxCompute権限」をご参照ください。

      object_name

      必須

      権限が付与されているオブジェクトの名前。 次のタイプのオブジェクトがサポートされています。

      • プロジェクト: MaxComputeプロジェクトの名前を取得するには、 MaxComputeコンソール

        上部のナビゲーションバーで、プロジェクトが存在するリージョンを選択します。 [プロジェクト管理] タブで、プロジェクトの名前を表示します。

      • テーブルまたはビュー: テーブルまたはビューの名前を取得するには、MaxComputeクライアントshow tables; ステートメントを実行します。

      • リソース: リソースの名前を取得するには、MaxComputeクライアントlist resources; ステートメントを実行します。

      • 関数: 関数の名前を取得するには、MaxComputeクライアントlist functions; ステートメントを実行します。

      • インスタンス: インスタンスの名前を取得するには、MaxComputeクライアントshow instances; ステートメントを実行します。 インスタンス名は、MaxComputeのインスタンスIDと同じです。

      このパラメーターを設定するときは、アスタリスク (*) を使用できます。 たとえば、このパラメーターをtable taobao * に設定すると、名前がtaobaoで始まるすべてのテーブルが一致します。

      説明

      subject_typeの値がROLEの場合にのみ、アスタリスク (*) を使用してこのパラメーターを設定できます。

      column_list

      選択可能

      アクセス制御を実行する列の名前。 このパラメーターは、object_typeパラメーターをTableに設定し、テーブル内の特定の列でアクセス制御を実行する場合にのみ必要です。 1つのステートメントで1つ以上の列名を指定できます。 複数の列名を指定する場合は、コンマ (,) で区切ります。

      説明

      このパラメーターは、Describe、Select、Alter、Update、Drop、およびShowHistoryのアクセス許可とすべてのアクセス許可を管理する特定の列を指定するために使用されます。 テーブルの列に機密レベルが指定されている場合、ラベルベースのアクセス制御方法を使用して、機密レベルのラベルに基づいて列の機密データに対するアクセス許可を管理できます。

      privilegeproperties

      conditions

      選択可能

      要求メッセージの送信元やアクセス方法など、ACLベースのアクセス制御に使用される条件。 このパラメーターは、"<var_name> <Operation> Constant" および "<var_name> <Operation> Constant" および... 形式で設定します。 var_nameおよびOperationパラメーターの有効な値の詳細については、このトピックの「条件」をご参照ください。

      days

      選択可能

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

      subject_type

      必須

      権限が付与されるサブジェクトのタイプ。 有効な値:

      • USER: Alibaba CloudアカウントまたはRAMユーザー。

      • ROLE: ロール。

      subject_name

      必須

      アクセス権限を付与するユーザーアカウントまたはロールの名前。 1回の権限付与操作に指定できるユーザーアカウントまたはロールは1つだけです。

      MaxComputeクライアントlist users; またはlist roles; ステートメントを実行して、ユーザーアカウントまたはロールの名前を取得できます。

  • 条件

    次の表に、conditionsでサポートされているvar_nameおよびOperationパラメーターの有効な値を示します。

    var_name

    タイプ

    API 操作

    説明

    acs:UserAgent

    STRING

    • StringEquals:=

    • StringNotEquals: <>

    • StringLike: like

    • StringNotLike: not like

    リクエストを送信したクライアントのユーザーエージェント。

    acs:Referer

    STRING

    リクエストのHTTPリファラー。

    acs:SourceIp

    IP Address

    • IpAddress: in (...)

    • NotIpAddress: not in (...)

    リクエストを送信したクライアントのIPアドレス。

    acs:SecureTransport

    BOOLEAN

    • True

    • False

    HTTPSチャネルなどの安全なチャネルでリクエストを送信するかどうかを指定します。

    acs:CurrentTime

    DATEANDTIME

    • DateEquals:=

    • DateNotEquals: <>

    • DateLessThan: <

    • DateLessThanEquals: <=

    • DateGreaterThan: >

    • DateGreaterThanEquals: >=

    webサーバーがリクエストを受信する時刻。 この値は、2012-11-11T23:59:59Zなどのyyyyy-MM-ddTHH:mm:ssZ形式のISO 8601標準に従う必要があります。

  • Alibaba CloudアカウントBob@aliyun.comは、プロジェクトtest_project_aの所有者です。 Allen、Alice、Tomは、Alibaba CloudアカウントBob@aliyun.comのRAMユーザーです。 次の例では、ステートメントはMaxComputeクライアントで実行されます。

    • 例1: ユーザーに権限を付与する

      プロジェクトtest_project_aにsale_detailという名前のテーブルを作成し、sale_detailテーブルのDescribe権限とSelect権限をRAMユーザーAllenに付与します。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Create a partitioned table named sale_detail in the project. 
      create table if not exists sale_detail
      (
      shop_name     string,
      customer_id   string,
      total_price   double
      )
      partitioned by (sale_date string, region string);
      --Add the RAM user Allen to the project as a member. 
      add user RAM$Bob@aliyun.com:Allen;
      -- Grant the permissions to the RAM user Allen. 
      grant Describe, Select on table sale_detail to USER RAM$Bob@aliyun.com:Allen;
      -- Query the permissions of the RAM user Allen. 
      show grants for RAM$Bob@aliyun.com:Allen; 
      -- The following result is returned: 
      Authorization Type: ACL
      [user/RAM$Bob@aliyun.com:Allen]
      A       projects/test_project_a/tables/sale_detail: Describe | Select
    • 例2: ユーザーに権限を付与する

      例1で作成したテーブルsale_detailの列shop_nameとcustomer_idに対するすべての権限をRAMユーザーAliceに付与します。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Add the RAM user Alice to the project as a member. 
      add user RAM$Bob@aliyun.com:Alice;
      -- Grant the permissions on columns to the RAM user Alice. 
      grant All on table sale_detail (shop_name, customer_id) to USER RAM$Bob@aliyun.com:Alice;
      -- Query the permissions of Alice. 
      show grants for RAM$Bob@aliyun.com:Alice; 
      -- The following result is returned: 
      Authorization Type: ACL
      [user/RAM$Bob@aliyun.com:Alice]
      A       projects/test_project_a/tables/sale_detail/customer_id: All
      A       projects/test_project_a/tables/sale_detail/shop_name: All
    • 例3: ロールを使用して複数のユーザーに同じ権限を付与する

      RAMユーザーのAliceとTom、およびAlibaba CloudアカウントLily@aliyun.comに、プロジェクトtest_project_aに対するCreateInstance、CreateResource、CreateFunction、CreateTable、およびList権限を付与します。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Add the RAM users Alice and Tom and the Alibaba Cloud account Lily@aliyun.com to the project as members. 
      add user RAM$Bob@aliyun.com:Alice;
      add user RAM$Bob@aliyun.com:Tom;
      add user ALIYUN$Lily@aliyun.com;
      -- Create a role named Worker. 
      create role Worker; 
      -- Assign the role Worker to the members. 
      grant Worker TO RAM$Bob@aliyun.com:Alice; 
      grant Worker TO RAM$Bob@aliyun.com:Tom; 
      grant Worker TO ALIYUN$Lily@aliyun.com; 
      -- Grant the CreateInstance, CreateResource, CreateFunction, CreateTable, and List permissions on the project test_project_a to the role Worker. 
      grant CreateInstance, CreateResource, CreateFunction, CreateTable, List on project test_project_a TO ROLE Worker;
      -- Query the permissions of the Alibaba Cloud account Lily@aliyun.com. 
      show grants for ALIYUN$Lily@aliyun.com; 
      -- The following result is returned. The result shows that the Alibaba Cloud account Lily@aliyun.com is granted the preceding permissions. 
      [roles]
      worker
      
      Authorization Type: ACL
      [role/worker]
      A       projects/test_project_a: CreateTable | CreateResource | CreateInstance | CreateFunction | List

ポリシーベースのアクセス制御

  • 前提条件

    ポリシーベースのアクセス制御方法を使用する前に、次の条件が満たされていることを確認してください。

    • 権限を付与するロールの名前が取得され、そのロールがMaxComputeプロジェクトに追加されます。

      MaxComputeクライアントlist roles; ステートメントを実行して、ロールの名前を照会できます。

      ロールの作成方法の詳細については、「ロールの計画」をご参照ください。

    • アクセス許可を付与するオブジェクトのタイプ、オブジェクトの名前、およびオブジェクトに対して許可するアクションが取得されます。

      オブジェクトタイプと各タイプのオブジェクトでサポートされているアクションの詳細については、「MaxComputeのアクセス許可」をご参照ください。

  • 制限事項

    ポリシーベースのアクセス制御方法を使用して、既存のロールにのみ権限を付与できます。

  • 注意事項

    ポリシーベースのアクセス制御方法を使用する前に、次の項目に注意してください。

    • ホワイトリストとブラックリストの両方のメカニズムが使用される場合、ブラックリストのメカニズムが優先されます。

    • ポリシーベースのアクセス制御方法を使用して、存在しないオブジェクトに対する権限をロールに付与できます。 ロールに権限が付与されている既存のオブジェクトを削除すると、そのオブジェクトに関連する権限情報が保持されます。 その結果、削除されたオブジェクトと同じ名前のオブジェクトを作成すると、セキュリティ上のリスクが生じる可能性があります。

    • ユーザーが削除されると、ユーザーに付与された権限は保持されます。 ユーザーがプロジェクトに再度追加されると、ユーザーの履歴アクセス権限が再度有効になります。 削除されたユーザーの残りの権限情報をクリアする方法の詳細については、「削除されたユーザーの残りの権限情報を完全にクリアする」をご参照ください。

  • 構文

    次のコードは、ポリシーベースのアクセス制御を実行するために使用できるGRANTステートメントの構文を示しています。

    grant <actions> on <object_type> <object_name> 
    to ROLE <role_name> 
    privilegeproperties("policy" = "true", "allow"="{true|false}"[, "conditions"= "<conditions>" ,"expires"="<days>"]);
  • パラメーター

    パラメーター

    必須

    説明

    actions

    必須

    許可されているアクション。 1つのステートメントで複数のアクションを指定できます。

    複数のアクションを指定する場合は、コンマ (,) で区切ります。 サポートされているアクションの詳細については、「MaxCompute権限」をご参照ください。

    object_type

    必須

    権限が付与されるオブジェクトのタイプ。 1つのステートメントで指定できるオブジェクトの種類は1つだけです。

    サポートされているオブジェクトタイプの詳細については、「MaxCompute権限」をご参照ください。

    object_name

    必須

    権限が付与されているオブジェクトの名前。 次のタイプのオブジェクトがサポートされています。

    • プロジェクト: MaxComputeプロジェクトの名前を取得するには、 MaxComputeコンソール

      上部のナビゲーションバーで、プロジェクトが存在するリージョンを選択します。 [プロジェクト管理] タブで、プロジェクトの名前を表示します。

    • テーブルまたはビュー: テーブルまたはビューの名前を取得するには、MaxComputeクライアントshow tables; ステートメントを実行します。

    • リソース: リソースの名前を取得するには、MaxComputeクライアントlist resources; ステートメントを実行します。

    • 関数: 関数の名前を取得するには、MaxComputeクライアントlist functions; ステートメントを実行します。

    • インスタンス: インスタンスの名前を取得するには、MaxComputeクライアントshow instances; ステートメントを実行します。 インスタンス名は、MaxComputeのインスタンスIDと同じです。

    このパラメーターを設定するときは、アスタリスク (*) を使用できます。 たとえば、このパラメーターをtable taobao * に設定すると、名前がtaobaoで始まるすべてのテーブルが一致します。

    説明

    アスタリスク (*) は、subject_typeの値がROLEの場合にのみ使用できます。

    role_name

    必須

    権限が付与されているロールの名前。 1つのステートメントで指定できるロールは1つだけです。

    MaxComputeクライアントlist roles; ステートメントを実行して、ロールの名前を照会できます。

    privilegeproperties

    policy

    必須

    値をtrueに設定します。 値trueは、ポリシーベースのアクセス制御が使用されていることを示します。

    allow

    ホワイトリストメカニズムを使用する場合は必須

    指定したオブジェクトに対して指定したアクションを許可するかどうかを指定します。 有効な値:

    • true: 指定されたオブジェクトに対して指定されたアクションが許可されます。

    • false: 指定されたオブジェクトに対する指定されたアクションは許可されません。 この値はブラックリストのメカニズムを示します。

    conditions

    選択可能

    要求メッセージの送信元やアクセス方法など、ポリシーベースのアクセス制御に使用される条件。 このパラメーターの設定の詳細については、「条件」をご参照ください。

    days

    選択可能

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

  • Alibaba CloudアカウントBob@aliyun.comは、プロジェクトtest_project_aの所有者です。 アレンとトムはBob@aliyun.comのRAMユーザーです。 RAMユーザーAllenには、プロジェクトtest_project_aの管理者ロールが割り当てられています。 次の例では、ステートメントはMaxComputeクライアントで実行されます。

    • 例1: ロールを使用してブラックリストメカニズムに基づいてユーザーに権限を付与する

      RAMユーザーTomが、名前がtb_ で始まるテーブルをプロジェクトtest_project_aから削除することを拒否します。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Create a role named Worker. 
      create role Worker; 
      -- Add the RAM user Tom to the project as a member. 
      add user RAM$Bob@aliyun.com:Tom;
      -- Assign the role Worker to the RAM user Tom. 
      grant Worker TO RAM$Bob@aliyun.com:Tom; 
      -- Deny the role Worker from dropping tables whose names start with tb_ from the project. 
      grant Drop on table tb_* to ROLE Worker privilegeproperties("policy" = "true", "allow"="false");
      -- View the permissions of the RAM user Tom. 
      show grants for RAM$Bob@aliyun.com:Tom; 
      -- The following result is returned. The result D indicates Deny. The RAM user Tom is denied from dropping tables whose names start with tb_ from the project. 
      Authorization Type: Policy
      [role/worker]
      D      projects/test_project_a/tables/tb_*: Drop
    • 例2: ブラックリストメカニズムに基づくポリシーベースのアクセス制御方法を使用して付与された権限をユーザーから取り消す

      例1でRAMユーザーTomに付与されているDrop権限を取り消します。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Revoke the role Worker from the RAM user Tom. 
      revoke Worker from RAM$Bob@aliyun.com:Tom;
      -- View the permissions of the RAM user Tom. The RAM user Tom does not have the Drop permission. 
      show grants for RAM$Bob@aliyun.com:Tom; 
    • 例3: ロールを使用して、ホワイトリストメカニズムに基づいてユーザーに権限を付与する

      RAMユーザーTomにUpdate権限を付与して、プロジェクトtest_project_aで名前がtb_ で始まるテーブルをTomが更新できるようにします。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Create a role named Worker. 
      create role Worker; 
      -- Add the RAM user Tom to the project as a member. 
      add user RAM$Bob@aliyun.com:Tom;
      -- Assign the role Worker to the RAM user Tom. 
      grant Worker TO RAM$Bob@aliyun.com:Tom; 
      -- Allow the role Worker to update tables whose names start with tb_ in the project test_project_a. 
      grant Update on table tb_* to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
      -- Query the permissions of the RAM user Tom. 
      show grants for RAM$Bob@aliyun.com:Tom; 
      -- The following result is returned. The result A indicates Allow. The RAM user Tom is allowed to update the tables whose names start with tb_ in the project. 
      Authorization Type: Policy
      [role/worker]
      A       projects/test_project_a/tables/tb_*: Update
    • 例4: ホワイトリストメカニズムに基づくポリシーベースのアクセス制御方法を使用して付与された権限をユーザーから取り消す

      例3でRAMユーザーTomに付与されているUpdate権限を取り消します。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Revoke the role Worker from the RAM user Tom. 
      revoke Worker from RAM$Bob@aliyun.com:Tom;
      -- Query the permissions of the RAM user Tom. The RAM user Tom does not have the Update permission. 
      show grants for RAM$Bob@aliyun.com:Tom; 
    • 例5: 組み込みロールが割り当てられているユーザーに、よりきめ細かい権限を付与する

      RAMユーザーAllenがプロジェクトtest_project_aからテーブルを削除することを拒否します。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Create a role named Worker. 
      create role Worker; 
      -- Assign the role Worker to the RAM user Allen. 
      grant Worker TO RAM$Bob@aliyun.com:Allen; 
      -- Deny the role Worker from dropping any table from the project test_project_a. 
      grant Drop on table * to ROLE Worker privilegeproperties("policy" = "true", "allow"="false");
      -- Query the permissions of the RAM user Allen. 
      show grants for RAM$Bob@aliyun.com:Allen; 
      -- The following result is returned. The RAM user Allen is denied from dropping any table from the project. 
      [roles]
      role_project_admin, worker
      
      Authorization Type: Policy
      [role/role_project_admin]
      A       projects/test_project_a: *
      A       projects/test_project_a/instances/*: *
      A       projects/test_project_a/jobs/*: *
      A       projects/test_project_a/offlinemodels/*: *
      A       projects/test_project_a/packages/*: *
      A       projects/test_project_a/registration/functions/*: *
      A       projects/test_project_a/resources/*: *
      A       projects/test_project_a/tables/*: *
      A       projects/test_project_a/volumes/*: *
      
      [role/worker]
      A       projects/test_project_a/tables/tb_*: Update
      D       projects/test_project_a/tables/*: Drop
      
      Authorization Type: ObjectCreator
      AG      projects/test_project_a/tables/local_test: All
      AG      projects/test_project_a/tables/mr_multiinout_out1: All
      AG      projects/test_project_a/tables/mr_multiinout_out2: All
      AG      projects/test_project_a/tables/ramtest: All
      AG      projects/test_project_a/tables/wc_in: All
      AG      projects/test_project_a/tables/wc_in1: All
      AG      projects/test_project_a/tables/wc_in2: All
      AG      projects/test_project_a/tables/wc_out: All
    • 例6: 組み込みロールが割り当てられているユーザーから権限を取り消す

      例5でRAMユーザーAllenに付与されているDrop権限を取り消します。 サンプル文:

      Go to the test_project_a project by using the Alibaba Cloud account Bob@aliyun.com. 
      use test_project_a; 
      -- Revoke the role Worker from the RAM user Allen. 
      revoke Worker from RAM$Bob@aliyun.com:Allen;
      -- Query the permissions of the RAM user Allen. The RAM user Allen does not have the Drop permission. 
      show grants for RAM$Bob@aliyun.com:Allen; 

ユーザーにロールを付与する

ユーザーにロールを割り当てると、そのユーザーにはそのロールのすべての権限が付与されます。

  • 制限事項

    ユーザーにロールを割り当てる前に、プロジェクトオブジェクトに対する権限をロールに付与する必要があります。 詳細については、「ロールまたはユーザーの付与」をご参照ください。

  • 構文

    grant <role_name> to <user_name>;
  • パラメーター

    • role_name: 必須です。 ユーザーに付与するロールの名前。

    • user_name: 必須です。 ロールを付与するAlibaba CloudアカウントまたはRAMユーザーの名前。 Alibaba Cloudアカウントの形式はALIYUN$**** @ aliyun.com; です。 RAMユーザーの形式はRAM$**** です。

  • -- Grant the player role to the Alibaba Cloud account test_user@aliyun.com. 
    grant player to ALIYUN$test_user@aliyun.com;

パッケージへのアクセスをユーザーまたはロールに許可する

このセクションでは、パッケージがインストールされているMaxComputeプロジェクトのパッケージにアクセスする権限をユーザーまたはロールに付与する方法について説明します。

インストールされたパッケージは、MaxComputeの独立したオブジェクトのタイプです。 パッケージ内のリソースにアクセスする場合は、パッケージに対する読み取り権限が必要です。 読み取り権限がない場合、Super_AdministratorまたはAdminロールが割り当てられているプロジェクト所有者とユーザーは、アクセス制御リスト (ACL) を使用して読み取り権限を付与できます。 ACLベースのアクセス制御の詳細については、「ACLベースのアクセス制御」をご参照ください。

  • 構文

    grant <actions> on package <project_name>.<package_name> to {USER|ROLE} <name>;
  • 注意事項

    読み取り権限がユーザーまたはロールに付与された後、ユーザーまたはロールは、パッケージがインストールされているプロジェクト内でのみ、パッケージ内のリソースにアクセスできます。 パッケージのアクセス許可を詳細に管理する方法の詳細については、「パッケージのアクセス制御」をご参照ください。

  • パラメーター

    パラメーター

    必須

    説明

    actions

    必須

    パッケージ内のリソースに対して実行できる操作。 値を [読み取り] に設定します。

    project_name

    必須

    パッケージが属するMaxComputeプロジェクトの名前。

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

    package_name

    必須

    パッケージの名前。

    MaxComputeクライアントshow packages; コマンドを実行して、作成したパッケージに関する情報を取得できます。

    name

    必須

    アクセス権限を付与するユーザーアカウントまたはロールの名前。 1回の権限付与操作に指定できるユーザーアカウントまたはロールは1つだけです。

    MaxComputeクライアントlist users; またはlist roles; ステートメントを実行して、ユーザーアカウントまたはロールの名前を取得できます。

  • BellaはAlibaba CloudアカウントAmy@aliyun.comのRAMユーザーです。 datashareパッケージへのアクセスをBellaに許可します。 例:

    -- Authorize Bella to access the datashare package. 
    grant Read on package test_project_a.datashare to user RAM$Amy@aliyun.com:Bella;

関連ステートメント

  • CREATE PACKAGE: パッケージを作成します。

  • CREATE ROLE: MaxComputeプロジェクトにロールを作成します。

  • REVOKE: ユーザーまたはロールからのパッケージに対するアクセス許可を取り消します。