Db2® カタログに対するアクセス権限の付与 (必須)

FM/Db2 は、すべての Db2® カタログ表 (機密情報を含む可能性があるカタログ表を含む) に アクセスできるようにする「全機能搭載型」の Db2® アプリケーションです。FM/Db2 は、Db2® カタログに対して出された動的 SQL をその処理の一部として使用します。FM/Db2 を使用可能にして、正確かつ最適な作動を確保するには、各 FM/Db2 ユーザーに必ず Db2® カタログ表への SELECT アクセス権限を付与する必要があります。これは、絶対的な要件です。

FM/Db2 には、さまざまな *AUTH Db2® カタログ表に含まれる情報を表示したり、場合によっては変更したりできるようにするオプション (Db2® 特権ユーティリティー) があります。ご使用のシステムで *AUTH 表へのアクセスが制限されている場合は、Db2® 特権ユーティリティーを完全に使用不可にして、*AUTH 表に対する SELECT アクセス権限をインストール時に付与する必要がないようにします。FM/Db2 特権ユーティリティーを一部の Db2® システムに対して使用不可にすることができますが、他のシステムに対して必要に応じて使用不可にすることはできません。

Db2® 特権ユーティリティーにアクセスできないようにするには、以下の作業が必要になります。
  • *AUTH 表に対する SELECT アクセスが許可されない AUTH_ACCESS=N システムごとに、FMN2SSDM マクロ項目において Db2® をコーディングします。詳しくは、AUTH_ACCESSにあるパラメーターの説明を参照してください。
  • Db2® カタログ表に対する SELECT アクセス権限を FM/Db2 ユーザーに付与するために使用したサンプル・ジョブにおいて *AUTH 表に対する参照を除去またはコメント化します。詳細については、Db2 カタログ表に対する SELECT アクセス権限を付与するサンプル・ジョブ を参照してください。

一部の Db2® カタログ表に対するアクセスをさらに制限することもできます。詳しくは、Db2 カタログ表に対する SELECT アクセス権限を付与するサンプル・ジョブを参照してください。FM/Db2 は、多くの Db2® カタログ表に対する不完全なアクセスを許容するように設計されています。ただし、一部の Db2® カタログ表へのアクセスが少なくなると、製品の機能は低下します。特定の主な Db2® カタログ表に対するアクセスが制限されると、製品は操作不能になります。主な表や列を示すリストは、以下の説明にある 最小サブセット サンプル・メンバーを参照してください。

Db2® 許可構成のために使用できるのは、Db2® または外部セキュリティー・サーバー (あるいは両方) だけです。これらは外部の製品であるため、ここでは、FM/Db2 の使用に関連する許可とセキュリティーの問題についての一般的なガイダンスのみを記載します。ご使用のシステム固有の要件に基づいて、FM/Db2 ユーザーに必要なアクセス・レベルを提供するための最適なアプローチを決定する必要があります。Db2® カタログ表に対する SELECT アクセス権限が、FM/Db2 ユーザーがアクセスできるすべての Db2® システムに付与されていることを確認する必要があります。

FM/Db2 プランがバインドされている場合、FM/Db2 では DYNAMICRULES(RUN) を使用する必要があります。詳細については、Db2 のバインド (必須)を参照してください。DYNAMICRULES(RUN) の動作の効果は、下記の概要に示すように、FM/Db2 が動的 SQL ステートメントに対して実行動作を使用することです。
  • Db2® は、動的 SQL ステートメントの許可検査にアプリケーション・プロセスの許可 ID と SQL 許可 ID (特殊レジスターの CURRENT SQLID の値) を使用します。
  • Db2® は、表、ビュー、索引、および別名の暗黙修飾子として、アプリケーション・プロセスの許可 ID と SQL 許可 ID (特殊レジスターの CURRENT SQLID の値) を使用します。
  • 動的 SQL ステートメントは、インストール時に指定されたアプリケーション・プログラミング・オプションの値を使用します。インストール・オプション USE FOR DYNAMICRULES は効力がありません。
  • GRANT、REVOKE、CREATE、ALTER、DROP、および RENAME ステートメントは動的に実行できます。

ここで重要な点は、アプリケーション・プロセスの許可 ID が、Db2® カタログ表へのアクセスを含む、動的 SQL ステートメントの許可検査に使用されることです。

単純な Db2® インストール済み環境では、ユーザーの TSO ログオン ID が Db2® 許可 ID として使用されます。そのため、適切な Db2® カタログ表への SELECT アクセス権限が、FM/Db2 ユーザーが使用する TSO ログオン ID のリストと同じ ID である Db2® 許可 ID のリストに付与される必要があります。Db2® カタログ表への SELECT アクセス権限を PUBLIC に付与することにより、同じ結果を得られます。

より複雑な Db2® インストール済み環境では、Db2® リソースへのアクセスを制御するために外部セキュリティー・サーバーを使用でき、ユーザーの TSO ログオン ID を 1 次および 1 つ以上の 2 次 Db2® 許可 ID に変換するために Db2® 許可出口を使用できます。詳しくは、適切なバージョンの Db2® の「Db2® 管理ガイド」を参照してください。

外部セキュリティー・サーバーを使用して Db2® 許可を管理し、Db2® 許可出口が使用可能な場合、Db2® カタログ表への SELECT アクセス権限を FM/Db2 ユーザーに付与するための 1 つの方法は下記のようになります。

  • その他の用途に使用されない FM/Db2 ユーザー用の汎用 Db2® 許可 ID を決定します。例えば、USER です。必要に応じて任意の Db2® 許可 ID を選択できます。
  • FM/Db2 サンプル・ジョブ (Db2 カタログ表に対する SELECT アクセス権限を付与するサンプル・ジョブを参照) を使用して、選択した Db2® 許可 ID に Db2® カタログ表への SELECT アクセス権限を付与します。そのためには、サンプル・ジョブを変更する必要があります。
  • 以下のように、セキュリティー・ソフトウェアおよび Db2® 許可出口を構成します。
    1. USER Db2® 許可 ID を使用する権限がユーザーにあることを検証します。
    2. Db2® への接続時にユーザーの TSO ログオン ID を Db2® 許可 ID USER に変換します。つまり、FM/Db2 によって発行された動的 SQL ステートメントの許可検査は、ユーザーの TSO ログオン ID ではなく、Db2® 許可 ID USER に対して実行されます。
  • 追加のセキュリティーの手段として、FM/Db2 プランに対する EXECUTE を PUBLIC ではなく汎用 Db2® 許可 ID に付与します。

この方法が実装されると、以下のことを確認するために使用できます。

  1. Db2® カタログ表への SELECT アクセス権限が PUBLIC に付与されていない。
  2. Db2® カタログ表への SELECT アクセス権限を必要とするのは汎用 Db2® 許可 ID のみである。
  3. 汎用 Db2® 許可 ID、したがって FM/Db2 機能へのアクセスを許可されるユーザーを検証および制御するために、外部セキュリティー・システムを使用できる。
  4. 個別の FM/Db2 ユーザーに、(TSO ログオン ID と同じ Db2® 許可 ID を使用する) Db2® カタログ表への直接アクセス権限はない。
  5. 汎用 Db2® 許可 ID へのアクセス権限を持つユーザーのみが FM/Db2 プランを実行できる。