データベース・アクセス制御機能

FM/IMS 関数を実行する場合、データベース・アクセス制御機能を使用して、データベースへのユーザーのアクセスを制御します。機能が BMP モードまたは DLI モードで実行される場合、データベースへのユーザーのアクセスを制御するオプションがあります。

定義するプロファイルに基づいて、関数が動的 PSB を使用する場合、関数が静的 PSB を使用する場合、または関数が動的または静的 PSB を使用する場合に、アクセス権チェックを実行できます。

動的 PSB を使用する関数に対してアクセス権チェックをアクティブにするには、以下を実行します。

  1. FILEM.IMS1.DBDYNAM という名前の FACILITY クラス・プロファイルを定義します。
  2. アクセス権をチェックするすべてのユーザーに、このリソースへの UPDATE または READ アクセス権を付与します。
    • 機能が BMP モードまたは DLI モードで実行されるときにアクセス検査を実行する場合は、UPDATE アクセス権限。
    • 機能が BMP モードで実行されるときにのみアクセス検査を実行する場合は、READ アクセス権限。

静的 PSB を使用する関数に対してアクセス権チェックをアクティブにするには、以下を実行します。

  1. FILEM.IMS1.DBSTATIC という名前の FACILITY クラス・プロファイルを定義します。
  2. アクセス権をチェックするすべてのユーザーに、このリソースへの UPDATE または READ アクセス権を付与します。
    • 機能が BMP モードまたは DLI モードで実行されるときにアクセス検査を実行する場合は、UPDATE アクセス権限。
    • 機能が BMP モードで実行されるときにのみアクセス検査を実行する場合は、READ アクセス権限。
アクセス権チェックがアクティブになった後、FM/IMS は RACROUTE 呼び出しを発行して、入力パネルまたはバッチ JCL で指定されているデータベースへのアクセスをユーザーに許可するかどうか決定します。RACROUTE 呼び出しは、XFACILIT クラス・リソース FILEM.IMS1.ssid.DB.dbname 用です。ここで、ssidIMS サブシステム名であり、dbname はユーザーがアクセスを試行するデータベースの名前です。
  • 読み取り専用関数によるアクセスの場合、ユーザーには READ アクセス権以上が必要です。
  • 更新関数によるアクセスの場合、ユーザーには UPDATE アクセス権以上が必要です。

対応するプロファイルを作成して、このリソースを保護します。

DLI モードで関数を実行する場合に、データベース・アクセス制御機能を使用して、データベースへのユーザーのアクセスを制御しようとしている場合は、追加の要件が 1 つあります。IMS サブシステムを動的割り振り専用に定義する必要があります。これを行うには、FM/IMS オプション・モジュールをカスタマイズするときに DYNALLOC パラメーターを Y に設定します。

DYNALLOC パラメーターの詳細については、FM/IMS Optionsを参照してください。

無許可アクセス試行のロギング

データベース・アクセス制御機能は、RACF 監査レコードの SMF への書き込みをサポートします。

IMS サブシステムのロギングをアクティブにするには、以下のようにします。
  1. FILEM.IMS1.ssid.DBLOG という名前の FACILITY クラス・プロファイルを定義します。ここで、ssid は IMS サブシステム名です。
  2. アクセスをログに記録するすべてのユーザーに、このプロファイルへの READ アクセス権を付与します。
名前がパターンと一致するすべての IMS サブシステムまたは IMS サブシステムのロギングをアクティブにするには、ステップ 1 のプロファイル名の ssid をアスタリスク (*) または名前パターンに置き換えます。

RACF®

  1. 動的 PSB を使用し、BMP モードで実行される機能のアクセス権チェックをアクティブにする。

    次のコマンドを使用すると、すべてのユーザーに対してチェックがアクティブになります。

    RDEFINE FACILITY FILEM.IMS1.DBDYNAM AUDIT(NONE) +
            UACC(READ) OWNER(ownerid)
    SETROPTS RACLIST(FACILITY) REFRESH
  2. 静的 PSB を使用し、BMP モードまたは DLI モードで実行される機能のアクセス権チェックをアクティブにする。

    次のコマンドを使用すると、すべてのユーザーに対してチェックがアクティブになります。

    RDEFINE FACILITY FILEM.IMS1.DBSTATIC AUDIT(NONE) +
            UACC(UPDATE) OWNER(ownerid)
    SETROPTS RACLIST(FACILITY) REFRESH
  3. ユーザーがプロファイル FILEM.IMS1.*.DB.* で絞り込まれる以外のプロファイルを使用してデータベースへのアクセス権を取得していないか確認します。
    RDEFINE XFACILIT FILEM.IMS1.*.DB.* AUDIT(NONE) +
            UACC(NONE) OWNER(ownerid)
    SETROPTS RACLIST(XFACILIT) REFRESH
  4. ユーザー dbadmin にサブシステム IF52 のすべてのデータベースの更新を許可し、それ以外のすべてのユーザーにこれらのデータベースの読み取りを許可します。
    RDEFINE XFACILIT FILEM.IMS1.IF52.DB.* AUDIT(NONE) +
            UACC(READ) OWNER(ownerid)
    PERMIT FILEM.IMS1.IF52.DB.* CLASS(XFACILIT) +
           ID(dbadmin) ACC(UPDATE)
    SETROPTS RACLIST(XFACILIT) REFRESH
  5. ユーザー user1 にサブシステム IF52 のデータベース DJ1E の更新を許可し、それ以外のすべてのユーザーにこのデータベースの読み取りを許可します。
    RDEFINE XFACILIT FILEM.IMS1.IF52.DB.DJ1E AUDIT(NONE) +
            UACC(READ) OWNER(ownerid)
    PERMIT FILEM.IMS1.IF52.DB.DJ1E CLASS(XFACILIT) +
           ID(user1) ACCESS(UPDATE)
    SETROPTS RACLIST(XFACILIT) REFRESH
  6. サブシステム IF52 のロギングのアクティブ化

    次のコマンドを使用すると、すべてのユーザーに対してロギングがアクティブになります。

    RDEFINE FACILITY FILEM.IMS1.IF52.DBLOG AUDIT(NONE) +
            UACC(READ) OWNER(ownerid)
    SETROPTS RACLIST(FACILITY) REFRESH
  7. すべてのサブシステムのロギングのアクティブ化

    次のコマンドを使用すると、すべてのユーザーに対してロギングがアクティブになります。

    RDEFINE FACILITY FILEM.IMS1.*.DBLOG AUDIT(NONE) +
            UACC(READ) OWNER(ownerid)
    SETROPTS RACLIST(FACILITY) REFRESH