オブジェクト関連セキュリティー

IBM i 製品がサーバー システムである場合、リレーショナル データベース テーブルへのアクセスを制御するためにセキュリティを強制できるオブジェクト関連のレベルは 2 つあります。

DDMACC パラメーターは, ネットワーク属性変更 (CHGNETA) コマンドで使用され, このシステム上のテーブルに別のシステムがアクセスできるかどうかを示し, アクセスできる場合には, 着信 DRDA 要求がどのレベルの機密保護で検査されるかを示します。

  • DDMACC パラメーター上で *REJECT が指定されている場合、 サーバーで受信される分散リレーショナル・データベース要求はすべて拒否されます。 しかし、このシステム (クライアントとして) は SQL 要求を使用して、 アクセスを許可する他のシステムにあるテーブルにアクセスすることができます。 *REJECT を指定する IBM i 環境のデータベースにリモート・システムがアクセスすることはできません。

    SQL 要求がすでに使用中である時に *REJECT が指定された場合には、 このシステムのデータベースに対するアクセスを要求するシステムからの新しい ジョブはすべて拒否され、 それらのジョブにエラー・メッセージが戻されます。既存のジョブに影響はありません。

  • DDMACC パラメーターに *OBJAUT が指定されている場合には、 通常のオブジェクト・レベルのセキュリティーがサーバー上で使用されます。

    DDMACC パラメーターは最初 *OBJAUT に設定されています。 *OBJAUT 値はリモート要求をすべて許可しますが、 それらの要求はこのサーバー上のオブジェクト権限によって制御されます。 DDMACC 値が *OBJAUT である場合には、このジョブで使用されるユーザー・プロファイルに、 私用権限、共通権限、グループ権限、または借用権限を通して適切なオブジェクト権限が与えられているか、 クライアント・ジョブによって必要とされるオブジェクトの権限リストにプロファイルが存在していなければなりません。 システム上の各 SQL オブジェクトについて、そのオブジェクトにアクセスする権限を、 すべてのユーザー、または特定のユーザーのみに (ユーザー ID によって) 与えることができます。 また、誰にもその権限を与えないこともできます。

    オブジェクトで許可されるユーザー ID は、サーバー・ジョブのユーザー ID です。 サーバー・ジョブがどのユーザー・プロファイルの下で実行されるかについては、「 APPCネットワークにおけるセキュリティの要素 」のトピックを参照してください。

    TCP/IP 接続の場合には、まず最初にサーバー・ジョブは QUSER で実行されます。 ユーザー ID が検査された後に、 接続要求で指定されたユーザー・プロファイルでジョブが実行されるようにユーザー・プロファイルの交換が行われます。 ジョブは、そのユーザー・プロファイルの属性 (たとえば、ライブラリー・リスト) を継承します。

    値 *OBJAUT が指定された場合、それ以上の検査 ( IBM i オブジェクト・レベル・セキュリティーを超える) は必要ないことを示します。

  • DDM ジョブでは、DDMACC パラメーターで出口プログラム (またはアクセス制御プログラム) の名前が指定されると、 追加のセキュリティーのレベルが使用されます。 出口プログラムを使用して、DDM クライアントのユーザーが特定のコマンドを使用して IBM i オペレーティング・システム上の特定のファイルにアクセスできるかどうかを制御することができます。

    DRDA ジョブでは, 出口プログラム (アクセス制御プログラム) の名前が DDMACC パラメーターに指定されている場合には, システムは *OBJAUT が指定されたかのように項目を処理しますが, 1 つの例外があります。 出口プログラムが DRDA ジョブに与えることができる唯一の影響は、接続要求を拒否することです。

最初は *OBJAUT に設定される DDMACC パラメーターは、 ネットワーク属性変更 (CHGNETA) コマンドを使用すると前述の値のいずれかに変更できます。 そして、ネットワーク属性表示 (DSPNETA) コマンドで現行値を表示できます。 また、ネットワーク属性検索 (RTVNETA) コマンドを使用して、制御言語 (CL) プログラム内の値を入手することもできます。

DDMACC パラメーター値が変更されるとその変更はすぐに反映されますが、 システムでサーバーとして開始された新しい 分散リレーショナル・データベース・ジョブだけが影響を受けます。 このサーバー上で変更前に実行されていたジョブは、古い値を使用し続けます。