![[IBM i]](ngibmi.gif)
IBM i での許可指定表
この情報は、キュー・オブジェクト、プロセス・オブジェクト、およびキュー・マネージャー・オブジェクトに対する特定の API 呼び出し、およびそれらの呼び出しの特定のオプションを使用するためにどんな許可が必要か調べるのに使用します。
- MQI 呼び出しを発行するアプリケーション
- MQSC コマンドをエスケープ PCF として発行する管理プログラム
- PCF コマンドを発行する管理プログラム
- 実行するアクション
- MQI オプション、MQSC コマンド、または PCF コマンド
- アクセス制御オブジェクト
- キュー、プロセス定義、キュー・マネージャー、名前リスト、チャネル、クライアント接続チャネル、リスナー、サービス、認証情報オブジェクト。
- 必要な権限
- MQZAO_ 定数で表す
テーブルの中で、接頭部が MQZAO_ の定数は、特定のエンティティーに関する GRTMQMAUT および RVKMQMAUT コマンドの許可リストのキーワードに対応します。 例えば、MQZAO_BROWSE はキーワード *BROWSE に、キーワード MQZAO_SET_ALL_CONTEXT はキーワード *SETALL に、というふうに対応します。 これらの定数は、製品と共に提供されるヘッダー・ファイル cmqzc.h に定義されています。
MQI authorizations
MQI 呼び出しおよびオプションのいくつかは、アプリケーションを実行するユーザー ID (またはアプリケーションが許可を想定できるユーザー ID) が適切な許可を与えられている場合にのみ、アプリケーションから発行できます。
許可検査を必要とする MQI 呼び出しは、MQCONN、 MQOPEN、 MQPUT1、 MQCLOSE の 4 つです。
MQOPEN および MQPUT1 の場合、権限検査は、名前が解決された結果の 1 つ以上の名前についてではなく、オープンされるオブジェクトの名前について行われます。 例えば、アプリケーションが別名キューをオープンする権限を与えられていても、別名が解決される基本キューをオープンする権限は与えられていない場合があります。 検査の規則は次のとおりです。名前解決の過程で最初に検出された定義について検査が行われます。この定義は、キュー・マネージャー別名定義が直接オープンされる場合以外はキュー・マネージャー別名ではない定義です。つまり、オブジェクト記述子の ObjectName フィールドに現れた名前について検査が行われます。 特定のオブジェクトをオープンするには必ず権限が必要です。さらに、キューに依存しない権限 (キュー・マネージャー・オブジェクトに関する許可を介して取得する) が必要なこともあります。
| 必要な条件 | キュー・オブジェクト ( 1 ) | プロセス・オブジェクト | キュー・マネージャー・オブジェクト |
|---|---|---|---|
| MQCONN オプション | 適用外 | 適用外 | MQZAO_CONNECT |
| 必要な条件 | キュー・オブジェクト ( 1 ) | プロセス・オブジェクト | キュー・マネージャー・オブジェクト |
|---|---|---|---|
| MQOO_INQUIRE | mqzao_inquire ( 2 ) | mqzao_inquire ( 2 ) | mqzao_inquire ( 2 ) |
| MQOO_BROWSE | MQZAO_BROWSE | 適用外 | 検査しない |
| MQOO_INPUT_* | MQZAO_INPUT | 適用外 | 検査しない |
| mqoo_save_all_context ( 3 ) | MQZAO_INPUT | 適用外 | 適用外 |
| MQOO_OUTPUT (通常キュー) ( 4 ) | MQZAO_OUTPUT | 適用外 | 適用外 |
| mqoo_pass_identity_context ( 5 ) | MQZAO_PASS_ IDENTITY_CONTEXT | 適用外 | 検査しない |
| mqoo_pass_all_ context ( 5, 6 ) | MQZAO_PASS_ ALL_CONTEXT | 適用外 | 検査しない |
| MQOO_SET_IDENTITY_CONTEXT ( 5、 6 ) | MQZAO_SET_ IDENTITY_CONTEXT | 適用外 | MQZAO_SET_IDENTITY_CONTEXT ( 7 ) |
| MQOO_SET_ALL_CONTEXT ( 5、 8 ) | MQZAO_SET_ ALL_CONTEXT | 適用外 | mqzao_set_all_context ( 7 ) |
| MQOO_OUTPUT (伝送キュー) ( 9 ) | MQZAO_SET_ ALL_CONTEXT | 適用外 | mqzao_set_all_context ( 7 ) |
| MQOO_SET | MQZAO_SET | 適用外 | 検査しない |
| MQOO_ALTERNATE_ USER_AUTHORITY | ( 10 ) | ( 10 ) | MQZAO_ALTERNATE_ USER_AUTHORITY ( 10、 11 ) |
| 必要な条件 | キュー・オブジェクト ( 1 ) | プロセス・オブジェクト | キュー・マネージャー・オブジェクト |
|---|---|---|---|
| MQPMO_PASS_ IDENTITY_CONTEXT | mqzao_pass_identity_context ( 12 ) | 適用外 | 検査しない |
| MQPMO_PASS_ALL _CONTEXT | mqzao_pass_all_context ( 12 ) | 適用外 | 検査しない |
| MQPMO_SET_ IDENTITY_CONTEXT | MQZAO_SET_IDENTITY_CONTEXT ( 12 ) | 適用外 | MQZAO_SET_IDENTITY_CONTEXT ( 7 ) |
| MQPMO_SET_ ALL_CONTEXT | mqzao_set_all_context ( 12 ) | 適用外 | mqzao_set_all_context ( 7 ) |
| (伝送キュー) ( 9 ) | MQZAO_SET_ ALL_CONTEXT | 適用外 | mqzao_set_all_context ( 7 ) |
| MQPMO_ALTERNATE_ USER_AUTHORITY | ( 13 ) | 適用外 | mqzao_alternate_user_authority ( 11 ) |
| 必要な条件 | キュー・オブジェクト ( 1 ) | プロセス・オブジェクト | キュー・マネージャー・オブジェクト |
|---|---|---|---|
| MQCO_DELETE | mqzao_delete ( 14 ) | 適用外 | 適用外 |
| MQCO_DELETE _PURGE | mqzao_delete ( 14 ) | 適用外 | 適用外 |
- モデル・キューがオープンされる場合は、次のようになります。
- モデル・キューの場合、オープンするアクセスのタイプごとにモデル・キューをオープンするための権限に加えて、モデル・キューの場合は MQZAO_DISPLAY 権限が必要です。
- 動的キューを作成する場合、MQZAO_CREATE 権限は必要ありません。
- モデル・キューのオープンに使用したユーザー ID には、作成された動的キューに関するキュー特有のあらゆる権限が自動的に与えられます (MQZAO_ALL と同等)。
- オープンされるオブジェクトのタイプに応じて、キュー、プロセス、名前リスト、またはキュー・マネージャー・オブジェクトのいずれかが検査されます。
- MQOO_INPUT_* も指定する必要があります。 このオプションは、ローカル・キュー、モデル・キュー、または別名キューの場合に有効です。
- この検査は、注 9で指定されている場合を除き、すべての出力ケースに対して実行されます。
- MQOO_OUTPUT も指定する必要があります。
- このオプションは、MQOO_PASS_IDENTITY_CONTEXT も暗黙的に指定されます。
- この権限は、キュー・マネージャー・オブジェクトと個々のキューの 両方に対して必要です。
- MQOO_PASS_IDENTITY_CONTEXT、MQOO_PASS_ALL_CONTEXT、および MQOO_SET_IDENTITY_CONTEXT も、このオプションによって暗黙的に指定されます。
- この検査は、Usage キュー属性として MQUS_TRANSMISSION を持ち、出力のために直接オープンされているローカル・キューまたはモデル・キューについて実行されます。 リモート・キューがオープンされる場合 (リモート・キュー・マネージャーとリモート・キューの名前を指定するか、リモート・キューのローカル定義の名前を指定して) は、この検査は適用されません。
- MQOO_INQUIRE (あらゆるオブジェクト・タイプの場合)、または (キューの場合) MQOO_BROWSE、MQOO_INPUT_*、MQOO_OUTPUT、または MQOO_SET の中から、少なくとも 1 つを指定する必要があります。 検査は他の指定されたオプションの場合と同じで、提供されている代替ユーザー ID を使用し、特有の名前のあるオブジェクト権限と、MQZAO_ALTERNATE_USER_IDENTIFIER 検査の現行アプリケーション権限を調べます。
- この許可では、任意の AlternateUserId を指定できます。
- MQUS_TRANSMISSION の Usage キュー属性がないキューの場合は、MQZAO_OUTPUT 検査も行われます。
- 検査は他の指定されたオプションの場合と同じで、提供されている代替ユーザー ID を使用し、名前のあるキューの権限と、MQZAO_ALTERNATE_USER_IDENTIFIER 検査の現行アプリケーション権限を調べます。
- 検査は、次の記述が両方とも当てはまる場合にのみ行われます。
- 永続動的キューがクローズされて削除中である。
- 使用中のオブジェクト・ハンドルを戻した MQOPEN が作成したキューではない。
- 特殊許可 MQZAO_ALL_MQI には、オブジェクト・タイプに関係する次の許可がすべて含まれます。
- MQZAO_CONNECT
- MQZAO_INQUIRE
- MQZAO_SET
- MQZAO_BROWSE
- MQZAO_INPUT
- MQZAO_OUTPUT
- MQZAO_PASS_IDENTITY_CONTEXT
- MQZAO_PASS_ALL_CONTEXT
- MQZAO_SET_IDENTITY_CONTEXT
- MQZAO_SET_ALL_CONTEXT
- MQZAO_ALTERNATE_USER_AUTHORITY
- MQZAO_DELETE (注 14 を参照) および MQZAO_DISPLAY は、管理許可として分類されます。 したがって、MQZAO_ALL_MQI には含まれません。
- 「検査しない」は、許可検査が行われないことを意味します。
- 「適用外」は、許可検査がこの操作には該当しないことを意味します。 例えば、プロセス・オブジェクトに MQPUT 呼び出しを発行できません。