このトピックでは、タスクをブロックする一般的な権限関連のエラーメッセージと、その解決方法について説明します。
以下は、プロジェクトオーナー向けの一般的な権限付与スクリプトです。
-- 方法1:ユーザーに直接権限を付与します
use project_xxx; -- プロジェクトに切り替えます。開発環境の場合は _dev を追加します。
grant CreateResource to user_xxx@aliyun.com; -- RAM ユーザー
-- 方法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; -- ロールに権限を付与します。
-- 以下は、特定のシナリオ向けのスクリプト例です。
-- ボリューム権限の付与
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;
-- 権限の表示
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) -
ソリューション
-
MaxCompute ボリュームは Object Storage Service (OSS) 上に構築されています。使用するには、まず OSS を有効化する必要があります。OSS の有効化方法の詳細については、「OSS サービスを有効にする」をご参照ください。
-
また、ご利用のアカウントでボリューム機能を有効にする必要もあります。そのためには、ボリュームアクセスを申請してください。
-
MaxCompute テーブルの Download 権限の欠落
-
エラーメッセージ
elNum":0,"smallCategorySeekJobReduce2Num":0,"topk":"500","vectorSeparator":",","workerRtMap":{}} 2019-11-26 09:44:06.772 [main] INFO c.a.p.p.CentauriPipelineExecutor - [] - execute RowColWorker worker start .......... [ODPS] getCountOfTable 建立DownloadSession失败 RequestId=20191126094406d6cf890b01803690, ErrorCode=NoPermission, ErrorMessage=Authorization Failed [4019], You have NO privilege 'odps:Download' on {acs:odps:*:projects/palgo_fpage/tables/behemoth_plt_item_img_emb_proxima}. Context ID:fd326e9d-9ac4-47a5-a088-87ad724f519f. --->Tips: CurrentProject:palgo_fpage_dev; Pricipal:ALIYUN$bsehfglmglm0@aliyun.com; No permission 'odps:Download' on resource acs:odps:*:projects/palgo_fpage/tables/behemoth_plt_item_img_emb_proxima CentauriException(code=20005, msg=odps任务运行失败, detailMsg=getCountOfTable error , odps client is null. tableName : palgo_fpage.behemoth_plt_item_img_emb_proxima) at com.alibaba.proxima.utils.OdpsUtil.getCountOfTable(OdpsUtil.java:125) at com.alibaba.proxima.pipeline.worker.odps.RowColWorker.apply(RowColWorker.java:23) at com.alibaba.proxima.pipeline.runner.OdpsPipelineRunner.run(OdpsPipelineRunner.java:40) at com.alibaba.proxima.pipeline.CentauriPipelineExecutor.execute(CentauriPipelineExecutor.java:30) at com.alibaba.proxima.CentauriRunner.runWithNormal(CentauriRunner.java:30) at com.alibaba.proxima.CentauriRunner.main(CentauriRunner.java:208) 2019-11-26 09:44:07.138 [main] INFO c.a.p.p.CentauriPipelineExecutor - [] - execute CleanUpWorker worker start .......... Exception in thread "main" java.lang.NullPointerException at com.alibaba.proxima.pipeline.worker.odps.CleanUpWorker.apply(CleanUpWorker.java:24) at com.alibaba.proxima.pipeline.runner.OdpsPipelineRunner.run(OdpsPipelineRunner.java:40) at com.alibaba.proxima.pipeline.CentauriPipelineExecutor.execute(CentauriPipelineExecutor.java:30) at com.alibaba.proxima.CentauriRunner.runWithNormal(CentauriRunner.java:44) at com.alibaba.proxima.CentauriRunner.main(CentauriRunner.java:208) FAILED: Run job failed. 2019-11-26 09:44:07 INFO =========================================================== 2019-11-26 09:44:07 INFO Exit code of the Shell command 100 2019-11-26 09:44:07 INFO --- Invocation of Shell command completed --- -
ソリューション
DataWorks コンソールの Data Map に移動します。MaxCompute テーブルを検索し、
Download権限を申請します。権限が付与されると、テーブルデータをダウンロードできます。詳細については、「データマップ」をご参照ください。
Describe、Select、またはその他のテーブル権限の欠落
-
エラーメッセージ
OK OK OK Running job in console. 2022-09-22 16:46:36.310 [main] INFO c.a.proxima.config.ConfigConvert - [1] - lead sign from resource : PROXIMA_CENTAURI_CHECK_SIGN ... ODPS-0420095: Access Denied - Authorization Failed [4019] You don't have the permission to access 'odps:Describe' on {acs:odps:*:projects/alinlp_kgb_algo/tables/df_sem_query_offline_embedding} Context ID:37a079dc-0c9b-4053-b718-06adc10e5b2 Tips: Principal:ALIYUN$xxx@xxx.com ... FAILED CentauriException(code=20005) odps样本运行失败 -
ソリューション
プロジェクト内のテーブルに必要な権限を申請してください。
シナリオ
ソリューション
プロジェクト間
テーブルが別のプロジェクトにある場合は、テーブルのオーナーに連絡して必要な権限をリクエストします。または、DataWorks コンソールの [データマップ] でテーブルを検索し、そこで権限を申請します。
同一プロジェクト
-
現在のプロジェクトでテーブルを作成した場合、必要な権限は自動的に付与されます。
-
別のユーザーがテーブルを作成した場合は、プロジェクト間のテーブルと同様に権限を申請します。
-
プロジェクトが保護されているなどの特殊なケースでは、プロジェクトのオーナーに連絡して必要な権限を付与してもらいます。スクリプトの例については、このトピックの冒頭にある権限付与スクリプトをご参照ください。
-