「V5ちょっと、イイ話第4回」でも紹介しましたが、System i V5ではサーバーサイドのアプリケーション単位で、個別にユーザーID毎のアクセス権限を設定することが出来ます。この機能により、例えばSystem i 上のひとつのオブジェクト(例えば、テーブル(物理ファイル)に対してユーザーからのアクセス方法に応じてアクセス許可を変更する、といったことが可能となります。
参考: V5 ちょっと、イイ話 第4回 FTPサーバーへのアクセス権限設定
今回は以下のようなシナリオにしたがって設定を行ってみましょう。
ケース・シナリオ
以下では実際の使用上、しばしば見受けられる以下のようなケースを想定しています。
- ユーザーはただひとつのユーザーID (例 KEIRI)を使用しています。通常はこのユーザーIDでPCOM端末からサイン・オンします。
- ユーザーID KEIRIはPCOMからはライブラリーAのテーブル(物理ファイル)Bを更新出来ます。
- ユーザーID KEIRIを使用すると、デフォルトの状態ではODBC接続を利用してテーブルBをMS Query、MS Accessなどから更新できてしまいます。
- しかし、管理者はテーブルBの更新は5250画面からだけ許可したいと考えており、ODBCアクセス経由でテーブルBを直接は更新させたくないと考えています。
このような場合、ODBCアクセスを使用した場合にのみユーザーKEIRIからのアクセスを不許可に設定することが可能です。アクセス権限はiSeriesナビゲーターのアプリケーション管理から設定します。
- ユーザーID ODBC1に対してはPCOMの端末アクセス、ODBCアクセスの両方を使用可能にします。
- 一方、ユーザーID ODBC2に対してはPCOMからの端末アクセスは許可するが、ODBCの使用は不可能にします。
シナリオ
ユーザーID
PCOM端末からサイン・オンして該当ファイルを変更する
ODBCアクセス(EXCELからMS Queryでデータ取得)で該当ファイルにアクセス
ODBC1
○ 可能
○ 可能
ODBC2
○ 可能
× アクセス不可
iSeriesナビゲーターによるアプリケーション管理の構成
iSeriesナビゲーターを使用すると、System i のサーバー機能毎に個別のアクセス権限の設定が可能です。
下記は、iSeriesナビゲーター アプリケーション管理のiSeriesナビゲーター・タブの例です。iSeriesナビゲーターの個々の機能に対するアクセス権限設定画面です。例えば、iSeriesナビゲーターのプリンター出力の操作、アクティブジョブの操作など、個々の機能単位にユーザーID単位でのアクセス権限設定が出来ます。

下記はクライアント・アプリケーション・タブの例です。このタブからは、iSeriesアクセスが提供する個々の機能、5250端末機能、データ転送(ダウンロード、アップロードなど詳細機能毎に設定可能)、ODBCサポート、OLE
DB サポート、リモートコマンド等特定の機能毎に権限の設定が可能です。
今回のケース・シナリオでは、下記のクライアント・アプリケーション・タブから”ODBCサポート” について権限設定を行います。その結果、ユーザーID
ODBC2についてはODBCアクセスが使用不可になります。

参考:端末エミュレーターとしてiSeriesアクセスを使用している場合は、このアプリケーション管理の画面からアクセス権限を設定出来ます。しかし、PCOMを端末エミュレーターとして使用している場合には、アクセス権限を設定することは出来ません。
ODBCドライバーについて
iSeriesアクセスV5R3では二種類のODBCドライバーが提供されます。
1.Client Access ODBC Driver (32-bit)
このドライバーを使用する場合、iSeriesナビゲーター・タブの “ODBCデータソース(V5R1より前のクライアントのみ)”
よりアクセス権限設定を行います。下記の図はPC上でODBCドライバーを設定する画面例です(ODBCデータソース
アドミニストレーター画面)。この画面からClient Access ODBC Driver (32-bit)を選択します。
2.iSeries Access ODBC Driver
このドライバーを使用する場合は、クライアント・アプリケーション・タブの
“ODBCサポート“ からアクセス権限を行います。ODBCドライバーは、ODBCデータソースアドミニストレーター画面からiSeries
Access ODBC Driverを選択します。

PCで使用するODBCドライバーに合わせて、上記二つのうち正しいほうを設定します。
以下の例では、iSeries Access ODBC Driver を使用しています。
事前準備
事前準備として、PC側ではすでにODBCドライバーの導入(iSeriesアクセスの導入)が完了しており、ODBCデータソースも登録が完了していることとします。
iSeriesナビゲーター アプリケーション管理からの設定変更
1.iSeriesナビゲーター アプリケーション管理 画面を開く
iSeriesナビゲーターを開始 → システム名をクリック → 右下のウィンドウ(接続タスク)から
アプリケーション管理の構成をクリックします。
2.アプリケーション管理の構成画面でクライアント・アプリケーション タブを表示します。
機能に ODBCサポート という項目が表示されます。

3.上記2の画面で、ODBCサポート をクリックし、カスタマイズボタンを押します。
4.アクセスのカスタマイズウィンドウが表示されます。
この画面で、アクセス許可をするユーザーIDと許可しないユーザーIDを設定します。
ユーザーおよびグループの欄からアクセス許可したいユーザーIDを選択し、許可されるアクセス欄に追加します。
また、アクセスを拒否したいユーザーIDは否認されるアクセス欄に追加します。
以下の例では許可されるアクセスにユーザーID ODBC1を追加、否認されるアクセスにユーザーID
ODBC2を追加しています。

参考:上記の画面例では“デフォルト・アクセス”の項目にチェックが入っています。このチェックが入っている場合、許可されるアクセス、否認されるアクセスに含まれないユーザーIDはすべてアクセスが許可されます。(つまり今回の例では、許可されるアクセスにODBC1を追加しなくても結果は同じになります。)
以上で設定は完了です。
動作確認
以下ではEXCEL から MS Queryを使用して動作確認をしています。
EXCELからMS Queryを起動するには、EXCELのメニューから データ → 外部データの取り込み
→ 新しいデータベース・クエリー を開きます。
ODBCアクセスが許可されているユーザーの場合

ODBCのデータソースを選択します。ここでは、事前に定義したiSeries Access
ODBCドライバーを使用したデータソースを選択しています。

System i のユーザーID入力画面が表示されます。ここではODBC1(ODBCアクセスを許可されているユーザーID)を入力します。

System i のテーブルを選択すると、ODBC経由でデータがEXCELに返されます。
ODBCアクセスが拒否されているユーザーの場合
MS Queryの画面でSystem i のユーザーIDを入力するところで、ODBCアクセスを許可していないユーザーID(ODBC2)を入力します。

MS Queryの画面にエラーが表示されます。エラー内容はODBCデータソースに対する使用許可がない、というメッセージが表示されます。

続いて以下のエラーが表示されます。(「このファイルは読み込めません。」というエラーが表示されます。)

