Data Virtualizationでビューの結果を照会するとSQL0727Nエラーが発生する

最終更新: 2025年3月17日
Data Virtualizationでビューの結果を照会するとSQL0727Nエラーが発生する

ユーザー・グループに基づくアクセス制御に大きく依存する環境で作業する場合、 SQL0727N エラーが発生する可能性があります。

症状

ビューの照会時に、SQL0727N エラー・メッセージが返されます。

SQL0727N  An error occurred during implicit system action type "3". 
Information returned for the error includes SQLCODE "-142", SQLSTATE "     " 
and message tokens "".  SQLSTATE=56098

原因

この問題は、グループに基づいたアクセス制御および許可が広く使用されている場合に発生する可能性があります。 このエラーは、特定の他の条件にも当てはまる場合に、仮想表で作成されたビューを照会すると発生します。 具体的には、基礎表へのビュー作成者のアクセス権は、グループ・メンバーシップに基づいています。 これらのビューにアクセスすると、そのビューに対するユーザーのアクセス権と、そのビューのベースとなっている基礎表に対するビュー作成者のアクセス権がチェックされます。 基礎表のビュー作成者のアクセス権限は外部 ID プロバイダーに依存しているため、再検証を待っている間は、ビューに無効のマークが付きます。

詳しくは、 DDL ステートメントまたはバインディング・パッケージ 8 の実行時のグループ特権の使用に関する制約事項を参照してください。

問題の解決

  1. 無効とマークされたビューの結果としてエラーが発生した場合、Admin ロールを持つユーザーは、ビューが無効とマークされる原因となった条件を解決できます。 グループに基づいたアクセスを処理する場合、一般的に管理者は、グループに加えて、またはグループに加えて、そのユーザーに SELECT 特権を付与する必要があります。

    また、すべてのロールまたはすべての Data Virtualization ユーザーに対してオブジェクトへのパブリックアクセスを許可し、グループに対して定義されたデータ保護ルールを使用してアクセスを制限することもできます。 詳細については、 データ保護ルールで仮想データを管理する Data Virtualization をご覧ください。

  2. 修正アクションが実行されると、そのオブジェクトに対して SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS() を実行すると、オブジェクトが再検証されます。 その後、オブジェクトへのアクセスは正常に行われます。 この手順を実行するには、Admin ロールを持つData Virtualizationユーザーが必要です。 このプロシージャーの実行は、以下の順序に従う必要があります。
CALL SYSHADOOP.BIG_SQL_SERVICE_MODE('ON');
CALL SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS(object-type, object_schema, object_name);
CALL SYSHADOOP.BIG_SQL_SERVICE_MODE('OFF');

詳しくは、以下のリソースを参照してください。

  1. ADMIN_REVALIDATE_DB_OBJECTS プロシージャー - 無効なデータベース・オブジェクトの再妥当性検査
  2. auto_reval - 自動再検証および無効化構成パラメーター