Hologres と DataWorks は深く統合されているため、開発中に権限エラーが発生することがあります。このトピックでは、いくつかの一般的な問題の解決方法について説明します。
一般的な問題
一般的な権限の問題の解決策については、以下のリンクを参照してください。
[+ Bind HologresDB] ボタンのグレーアウト
-
症状
DataWorks コンソールの[ワークスペース設定] ページの [コンピューティングエンジン情報] タブで Hologres データベースをバインドしようとすると、[+ HologresDB のバインド] ボタンがグレー表示されます。
-
原因
-
RAM ユーザーにワークスペースの管理権限がありません。
-
RAM ユーザーにインスタンスの開発権限がありません。
-
-
解決策
-
RAM ユーザーがワークスペースの管理権限を持たない場合、[メンバー管理] ページでユーザーに必要な権限を付与します。 詳細については、「ワークスペースレベルのサービスの権限を管理する」をご参照ください。
-
RAM ユーザーにインスタンスの開発権限がない場合は、使用中のユーザー権限モデルに基づいて、Hologres で権限を付与します。
-
簡易権限モデルで権限を付与する場合は、「ユーザーの追加」をご参照ください。
-
PostgreSQL 標準認可モデルで権限を付与する場合は、「PostgreSQL 標準認可モデルでの権限付与」をご参照ください。
-
-
バインド時の環境初期化の失敗
-
症状
DataWorks コンソールの [HologresDB のバインド] ダイアログボックスでパラメーターを設定した後、[バインドと環境の初期化] が失敗したというエラーが表示されます。
-
原因
コンピューティングエンジンをバインドした後、そのネットワーク環境、つまりスケジューリングに使用する専用リソースグループを初期化する必要があります。この初期化により、Hologres インスタンスと DataWorks リソースグループ間のネットワーク接続性が確立され、タスクの実行が可能になります。
説明一部のタイプの Hologres インスタンスでは初期化は不要です。UI に初期化が不要と表示される場合は、すぐにエンジンをデータ開発に使用できます。
-
解決策
-
初期化権限を付与します。
必要な権限がない場合、ネットワーク環境を確認できず、認可を要求するプロンプトが表示されます。したがって、ネットワーク環境を確認する前に、以下のポリシーを付与してください。
-
ポリシー 1: AliyunHologresFullAccess
このポリシーにより、Hologres インスタンスとそのネットワークに関する詳細情報にアクセスできるようになります。詳細については、「AliyunHologresFullAccess ポリシーの付与」をご参照ください。
-
ポリシー 2: 以下のカスタムポリシーを作成します。
このポリシーにより、Hologres と DataWorks のネットワークを接続し、リソースグループを管理し、バインドプロセスを完了できます。詳細については、「カスタムポリシーの作成」をご参照ください。ポリシーには以下の内容が含まれます。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "dataworks:*ResourceGroup", "Resource": "acs:dataworks:*:*:exclusive_resource_group/*" }, { "Effect": "Allow", "Action": "dataworks:Get*", "Resource": "acs:dataworks:*:*:*" }, { "Effect": "Allow", "Action": "ecs:DescribeSecurityGroups", "Resource": "acs:ecs:*:*:securitygroup/*" }, { "Effect": "Allow", "Action": "vpc:DescribeVpcs", "Resource": "acs:vpc:*:*:vpc/*" }, { "Effect": "Allow", "Action": "vpc:DescribeVSwitches", "Resource": "acs:vpc:*:*:vswitch/*" } ] }
-
-
ネットワーク環境を確認し、初期化します。
スケジューリングエンジンタスク専用のリソースグループを選択して、初期化を完了します。 必要なリソースグループが利用できない場合は、スケジューリング専用リソースグループの追加と使用の手順に従って作成します。 UI には、本番環境と開発環境の両方のインスタンス名、VPC、VSwitch を含む[Hologres インスタンスのネットワーク情報]が表示されます。 [DataWorks スケジューリング専用リソースグループ] ドロップダウンリストからリソースグループを選択し、初期化ステータスが[完了]であることを確認します。
-
インスタンス名の重複によるバインドの失敗
-
症状
[HologresDB のバインド] ダイアログボックスでパラメーターを設定し、OK をクリックすると、「同じ名前のコンピューティングエンジンインスタンスが既に存在します」または「内部テナントシステムエラー」というエラーメッセージが表示されます。
-
原因
Hologres インスタンスの [Instance Display Name] が既存のインスタンスと競合しています。
-
解決策
[インスタンス表示名] を変更し、再度 OK をクリックします。
DataService Studio での「permission denied」エラー
-
症状
DataWorks コンソールの DataService Studio ページでテーブルにクエリを実行すると、「"Execution failed: ERROR: permission denied for table xxxx"」というエラーが表示されます。
-
原因
DataService Studio に設定されているユーザーアカウントに、テーブルに対するクエリ権限がありません。
-
解決策
-
DataService Studio の Hologres データソースに正しいアカウントが設定されていることを確認します。
DataWorks コンソールにログインし、[データソース管理] ページに移動して、データソースのユーザーアカウント設定を確認します。 詳細については、「Hologres データソースを構成する」をご参照ください。
-
Hologres でテーブルのクエリ権限をアカウントに付与します。
DataWorks コンソールにログインし、[データソース管理] ページに移動して、データソースアカウントの権限設定を確認します。 詳細については、「RAM ロールベースの権限付与を使用してデータソースを設定する」をご参照ください。
DataWorks の権限と認可の詳細については、「付録: プリセットロールと権限のリスト (ワークスペースレベル)」をご参照ください。
-
本番環境エラー: permission denied for schema xxx
-
症状
DataWorks の本番環境で実行するために SQL タスクを公開すると、
permission denied for schema xxxというエラーが表示されます。 -
原因
本番環境のアカウントに、インスタンスのスキーマに対するアクセス権限がありません。
-
解決策
-
本番環境にバインドされているアカウントを特定するには、DataWorks ワークスペース設定ページに移動します。詳細については、「ワークスペースの作成と管理」をご参照ください。この設定は、対象インスタンスの[Hologres] タブ内の[コンピューティングエンジン情報] セクションにある、[アクセスID] 設定で確認できます。
-
HoloWeb にログインし、Security Center ページに移動します。Users または [データベース認可] ページで、本番環境アカウントの権限を確認します。
-
アカウントに必要な権限がない場合は、Users ページまたは [データベース承認] ページで権限を付与します。詳細については、「DB の管理」をご参照ください。
-