パッケージ作成者は、MaxComputeプロジェクトにパッケージを作成します。
背景情報
このトピックでは、Alibaba Cloudアカウントが複数のMaxComputeプロジェクトを所有しており、Project Aの特定のテーブル、リソースファイル、およびユーザー定義関数 (UDF) を他のプロジェクトと共有する必要があります。 次のいずれかの方法を使用して、他のプロジェクトとリソースを共有できます。
他のプロジェクトのユーザーをプロジェクトAに追加し、各ユーザーにリソースへのアクセス権限を付与します。 この方法は複雑である。 プロジェクト間のリソースアクセスシナリオでは、この方法を使用しないことを推奨します。 この方法は、プロジェクトチームのメンバーにきめ細かいリソースアクセス制御が必要な場合にのみ使用することをお勧めします。 認証コマンドの構文の詳細については、「ACLベースのアクセス制御」をご参照ください。
パッケージベースのアクセス制御メカニズムを使用します。
パッケージベースのアクセス制御メカニズムは、プロジェクト間でデータとリソースを共有するために使用されます。 プロジェクトAの所有者は、他のプロジェクトが使用する必要のあるリソースとそのリソースに対する操作権限をパッケージ化し、他のプロジェクトの所有者にパッケージのインストールを許可します。 パッケージがインストールされた後、他のプロジェクトの所有者は、プロジェクト内のユーザーがパッケージ内のリソースにアクセスすることを許可するかどうかを判断できます。 次の図は、パッケージベースのアクセス制御メカニズムの実装方法を示しています。

制限事項
パッケージベースのアクセス制御メカニズムを使用する前に、次の制限事項に注意してください。
最大1,000個のリソースをパッケージに追加できます。
最大100,000個のMaxComputeプロジェクトに対してパッケージをインストールできます。
MaxComputeプロジェクトで作成された最大100個のパッケージを別のMaxComputeプロジェクトにインストールできます。
MaxComputeプロジェクトには、最大100,000個のパッケージを作成できます。
MaxComputeプロジェクトには、最大100,000個のパッケージをインストールできます。
このステートメントはCMDステートメントであり、MaxComputeクライアント (odpscmd) でのみ実行できます。
構文
create package <package_name>;パラメーター
パラメーター | 必須 | 説明 |
package_name | 必須 | パッケージの名前。プロジェクト内で一意です。 名前には、文字、アンダースコア (_) 、および数字が含まれますが、数字で始めることはできません。 MaxComputeクライアントで |
例
この例では、Alibaba CloudアカウントBob@aliyun.comはtest_project_aプロジェクトの所有者であり、他のプロジェクトがtest_project_aプロジェクト内の特定のリソースにアクセスする権限を付与する必要があります。 パッケージを作成します。 サンプル文:
-- Use the Alibaba Cloud account Bob@aliyun.com to access the project test_project_a.
use test_project_a;
-- Create a package.
create package datashare;関連ステートメント
パッケージに追加: ユーザーが必要とするリソースを、ユーザーが作成したパッケージに追加します。
パッケージから削除: パッケージからリソースを削除します。
プロジェクト許可: 他のプロジェクトにパッケージの使用を許可します。
DISALLOW PROJECT: プロジェクトからのパッケージに対するアクセス許可を取り消します。
DESCRIBE PACKAGE: MaxComputeプロジェクトで作成されたパッケージの詳細を表示します。
DROP PACKAGE: パッケージを削除します。
パッケージをインストール: MaxComputeプロジェクトにパッケージをインストールします。
UNINSTALL PACKAGE: MaxComputeプロジェクトにインストールされているパッケージをアンインストールします。
GRANT: ユーザーまたはロールがパッケージにアクセスすることを許可します。
REVOKE: ユーザーまたはロールからのパッケージに対するアクセス許可を取り消します。
SHOW: MaxComputeプロジェクトで作成またはインストールされたパッケージを表示します。