Data Virtualizationで仮想テーブルのビューへのアクセス権をユーザーに付与できない
最終更新: 2025年3月17日
userBという名前のユーザがData Virtualization エンジニアのロールを持ち、仮想テーブルに基づいてビューを作成します。 ところが、userB はこのビューへのアクセス権限をユーザーに付与できません。
症状
userA という名前のユーザーが VIRTUAL_Aという名前の仮想表を作成します。 userB という名前のユーザーは、テーブル VIRTUAL_A から VIEW_B という名前のビューを作成します。 テーブルVIRTUAL_Aへのアクセス許可は、[Manage access]ページの [All data virtualization users]オプションを使用して、すべてのData Virtualizationユーザーに付与されます。
ユーザー B という名前のユーザーは、ビュー VIEW_BBで ユーザー C へのアクセス権限を付与しようとしますが、以下の例のようなエラーを受け取ります。
Code 500: SQLExecute: {42501} [IBM][CLI Driver][DB2/LINUXX8664] SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation. Authorization ID: "USERB". Operation: "GRANT". Object: "USERB.VIEW_B". SQLSTATE=42501
原因
userB は、ビュー VIEW_B の作成者ですが、userB は、表 VIRTUAL_A に依存するビューへのアクセス権限をユーザーに付与するために必要なアクセス権限を VIRTUAL_A で持っていません。
問題の解決
この問題を解決するには、userA が SQL エディターで以下のステートメントを入力して、表 VIRTUAL_A へのアクセス権限を userB に付与する必要があります。
GRANT SELECT ON TABLE "schema".VIRTUAL_A TO "userB" WITH GRANT OPTION
この回避策は、「すべての Data Virtualization ユーザー」オプションを使用して、ユーザー (この例では userB) に仮想テーブル (この例では VIRTUAL_A) へのアクセス権限が付与されている場合にのみ必要です。
トピックは役に立ちましたか?
0/1000