このトピックでは、権限の問題によって発生するタスクの失敗に関するよくある質問への回答を提供します。
プロジェクトオーナーが権限を付与するために一般的に使用するスクリプト
-- 方法 1: ユーザーに直接権限を付与します。
use project_xxx; -- ユーザーが指定されたプロジェクトを使用できるようにします。開発環境のプロジェクトの名前には、_dev というサフィックスが付きます。
grant CreateResource to user_xxx@aliyun.com; -- 指定された RAM ユーザーに CreateResource 権限を付与します。
-- 方法 2: ロールを作成し、そのロールをユーザーに割り当てます。
use project_xxx;
create role worker; -- ロールを作成します。
grant worker to user_xxx@aliyun.com; -- 指定された RAM ユーザーにロールを割り当てます。
grant CreateInstance, CreateResource, CreateFunction, CreateTable, List ON PROJECT project_xxx TO ROLE worker; -- 指定されたプロジェクトに必要な権限をロールに付与します。
-- 例:
-- 指定された RAM ユーザーにボリューム関連の権限を付与します。
use project_xxx;
grant CreateVolume on project project_xxx to user user_xxx@aliyun.com;
grant Read on volume volume_xxx to user user_xxx@aliyun.com;
grant Write on volume volume_xxx to user user_xxx@aliyun.com;
-- 指定された RAM ユーザーに付与されている権限を照会します。
use project_xxx;
show grants for user_xxx@aliyun.com;
MaxCompute のボリュームに対する権限がない場合はどうすればよいですか?
エラーメッセージ
[403] com.aliyun.odps.OdpsException: ODPS-0420095: Access Denied - Volumes is not allowed in project config. at com.aliyun.odps.rest.RestClient.handleErrorResponse(RestClient.java:382) at com.aliyun.odps.rest.RestClient.request(RestClient.java:321) at com.aliyun.odps.rest.RestClient.request(RestClient.java:275) at com.aliyun.odps.Volume.reload(Volume.java:109) at com.aliyun.odps.Volumes.exists(Volumes.java:117) at com.aliyun.odps.Volumes.exists(Volumes.java:100)
解決策
Object Storage Service (OSS) がアクティブになっているかどうかを確認します。MaxCompute のボリュームは OSS に基づいて作成されます。そのため、MaxCompute のボリュームは、OSS がアクティブになった後にのみ使用できます。 OSS をアクティブにする方法の詳細については、「OSS をアクティブにする」をご参照ください。
Alibaba Cloud アカウントにボリューム関連の権限を付与します。詳細については、「新機能の試用版を申請する」をご参照ください。
MaxCompute テーブルのダウンロード制御が有効になっていない場合はどうすればよいですか?
エラーメッセージ
解決策
DataWorks コンソールの [データマップ] ページで、MaxCompute テーブルを検索し、テーブルのダウンロード制御を申請します。ダウンロード制御が有効になると、テーブルの実行中にテーブルのデータをダウンロードできます。詳細については、「データマップ」をご参照ください。
MaxCompute テーブルに対する Describe や Select などの権限がない場合はどうすればよいですか?
エラーメッセージ
解決策
関連プロジェクトでテーブル権限を申請します。
シナリオ
解決策
クロスプロジェクト
クロスプロジェクトテーブルの権限を申請するには、テーブルオーナーに連絡してください。 DataWorks コンソールの [データマップ] ページでテーブルを検索し、関連する権限を申請できます。
単一プロジェクト
現在のプロジェクトで Alibaba Cloud アカウントを使用してテーブル権限が作成された場合、Alibaba Cloud アカウントは自動的に権限を取得できます。
現在のプロジェクトで別の Alibaba Cloud アカウントを使用してテーブル権限が作成された場合は、クロスプロジェクトテーブルの権限を申請するために使用される方法を使用して、テーブル権限を申請します。
特別なシナリオでは、プロジェクトオーナーに連絡して関連する権限を付与してもらいます。たとえば、
プロジェクトが保護されている
場合は、プロジェクトオーナーに連絡してください。前述の一般的に使用される承認スクリプトを参照できます。