外部プロジェクトを作成した後、外部プロジェクトのテーブルは、外部プロジェクトの作成に使用されるAlibaba Cloudアカウントによって所有されます。 このトピックでは、外部プロジェクトまたは外部プロジェクトのテーブルに対して操作を実行する権限を他のユーザーに付与する方法について説明します。
注意事項
データレイクハウスソリューションがMaxComputeで有効になっている場合、MaxComputeはデータソースのメタデータを保持しません。 したがって、ポリシーはデータソース内のオブジェクトの名前に基づいて管理されます。 データソース内のオブジェクトの名前が変更された場合、オブジェクトに対する権限は無効になります。 オブジェクトから権限を削除するには、Revokeコマンドまたは削除ポリシーを実行する必要があります。 できるだけ早く既存のオブジェクトからアクセス許可を削除しない場合、既存のオブジェクトと同じ名前の新しいオブジェクトがアクセス許可を継承します。 この場合、外部プロジェクトのデータソースの既存のオブジェクトと同じ名前の新しいオブジェクトに対して、予期しないアクセス許可を取得します。
権限付与関連のステートメント
外部プロジェクトに移動します。
use <external_project_name>;external_project_nameは、外部プロジェクトの名前を指定します。
外部プロジェクトをRAMユーザーとして使用する場合は、外部プロジェクトのRAMサポートを有効にする必要があります。
add accountprovider ram;作成した外部プロジェクトがHadoop外部データソースに基づいている場合は、Hive互換データ型エディションを有効にする必要があります。
set odps.sql.hive.compatible=true;プロジェクトにユーザーアカウントを追加します。
add user <Alibaba Cloud account>;Alibaba Cloudアカウントの名前は、
ALIYUN$<account_name>形式です。 MaxComputeクライアント (odpscmd) でlist users;コマンドを実行して、ユーザー情報を照会できます。外部プロジェクトのテーブルを表示する権限をユーザーに付与します。
grant List on project external_project to USER <Alibaba Cloud account>;Alibaba Cloudアカウントの名前は、
ALIYUN$<account_name>形式です。 MaxComputeクライアント (odpscmd) でlist users;コマンドを実行して、ユーザー情報を照会できます。外部プロジェクトのテーブルに対するすべての権限をユーザーに付与します。
grant All on table <table_name> to user <Alibaba Cloud account>;Alibaba Cloudアカウントの名前は、
ALIYUN$<account_name>形式です。 MaxComputeクライアント (odpscmd) でlist users;コマンドを実行して、ユーザー情報を照会できます。ジョブが実行されているプロジェクトに切り替えます。
use <main_project_name>;Alibaba Cloudアカウントの名前は、
ALIYUN$<account_name>形式です。 MaxComputeクライアント (odpscmd) でlist users;コマンドを実行して、ユーザー情報を照会できます。ユーザーにジョブを実行する権限を付与します。
grant CreateInstance on project <main_project_name> to user <Alibaba Cloud account>;Alibaba Cloudアカウントの名前は、
ALIYUN$<account_name>形式です。 MaxComputeクライアント (odpscmd) でlist users;コマンドを実行して、ユーザー情報を照会できます。
外部プロジェクトに対するアクセス権限を他のAlibaba CloudアカウントまたはRAMユーザーに付与する場合は、権限付与操作を実行するためにMaxComputeのセキュリティ基準に準拠する必要があります。 詳細については、「権限の概要」をご参照ください。
関連ドキュメント
外部プロジェクトと外部プロジェクトのテーブルを管理できます。 たとえば、テーブルデータを照会または更新できます。 詳細については、「SQL文を使用した外部プロジェクトの管理」をご参照ください。