DB2 ユニバーサル・データベース (OS/390 版) では、 DB2 ユニバーサル・データベース (OS/390 版) 分散データ機能 (DDF) の重要な部分として DRDA アプリケーション・リクエスターを実装しています。 DDF は、ローカルな DB2 ユニバーサル・データベース (OS/390 版) データベース管理機能とは別個に停止させることができますが、ローカルな DB2 ユニバーサル・データベース (OS/390 版) データベース管理サポートなしに実行させることはできません。
アプリケーション・リクエスターとして動作している場合、 DB2 ユニバーサル・データベース (OS/390 版) はシステム上で実行されているアプリケーションを、 DRDA アプリケーション・サーバー機能が実装されているリモート DB2 ユニバーサル・データベース、 DB2 (MVS/ESA 版)、DB2 ユニバーサル・データベース (OS/390 版)、DB2 ユニバーサル・データベース (AS/400 版)、および DB2 (VSE および VM 版) の各データベース・サーバーに接続できます。
DB2 ユニバーサル・データベース (OS/390 版) アプリケーション・リクエスターを使用して分散データベースにアクセスするには、以下のようにしてください。
分散データベース環境の処理の大部分では、ネットワーク内の他の場所との間でメッセージを交換することが必要です。このプロセスが正しく実行されるようにするには、以下のことを実行しなければなりません。
ローカル・システム (SNA) の定義またはローカル・システム (TCP/IP) の定義を参照してください。
SNA ネットワーク内の各プログラムには NETID および LU 名が割り当てられているため、 DB2 ユニバーサル・データベース (OS/390 版) アプリケーション・リクエスターがネットワークに接続するときには NETID.LUNAME 値 (VTAM を介して割り当てられる) が必要です。 DB2 ユニバーサル・データベース (OS/390 版) アプリケーション・リクエスターはローカルの DB2 ユニバーサル・データベース (OS/390 版) データベース管理システムに統合されるため、アプリケーション・リクエスターには RDB_NAME も必要です。 DB2 ユニバーサル・データベース (OS/390 版) のマニュアルでは、 DB2 ユニバーサル・データベース (OS/390 版) は RDB_NAME をロケーション 名と呼んでいます。
DB2 ユニバーサル・データベース (OS/390 版) アプリケーション・リクエスターを SNA ネットワークに定義するには、次のようにします。
DB2 ユニバーサル・データベース (OS/390 版) は始動処理中に BSDS を読み取って、システム・インストール・パラメーターを取得します。 BSDS に保管されるレコードの 1 つは DDF レコード と呼ばれるものです。そのように呼ばれるのは、VTAM に接続するとき、その中に収められている情報を DDF が使用するからです。この情報は次のものから構成されます。
以下の 2 つの方法で、DDF BSDS 情報を DB2 ユニバーサル・データベース (OS/390 版) に指定できます。
図 15. DB2 ユニバーサル・データベース (OS/390 版) インストール・パネル DSNTIPR
DISTRIBUTED DATA FACILITY = ==> _ Enter data below: 1 DDF STARTUP OPTION ===> AUTO NO, AUTO, or COMMAND 2 DB2 LOCATION NAME ===> NEW_YORK3 The name other DB2s use to refer to this DB2 3 DB2 NETWORK LUNAME ===> NYM2DB2 The name VTAM uses to refer to this DB2 4 DB2 NETWORK PASSWORD ===> PSWDBD1 Password for DB2's VTAM application 5 RLST ACCESS ERROR ===> NOLIMIT NOLIMIT, NORUN, or 1-5000000 6 RESYNC INTERVAL ===> 3 Minutes between resynchronization period 7 DDF THREADS ===> ACTIVE (ACTIVE or INACTIVE) Status of a database access thread that commits or rolls back and holds no database locks or cursors 8 DB2 GENERIC LUNAME ===> Generic VTAM LU name for this DB2 subsystem or data sharing group 9 IDLE THREAD TIMEOUT ===> 120 0 or seconds until dormant server ACTIVE thread will be terminated (0-9999) 10 EXTENDED SECURITY ===> YES Allow change password and descriptive security error codes. YES or NO. PRESS: ENTER to continue RETURN to exit HELP for more information |
図 16 には、BSDS を更新して、ロケーション名を NEW_YORK3 に、 LU 名を NYM2DB2 に、パスワードを PSWDBD1 にする方法が示されています。
図 16. ブートストラップ・データ・セット DDF 定義 (VTAM 用) の例
//SYSADMB JOB ,'DB2 5.1 JOB',CLASS=A //* //* CHANGE LOG INVENTORY: //* UPDATE BSDS WITH //* - DB2 LOCATION NAME FOR NEW_YORK3 //* - VTAM LUNAME (NYM2DB2) //* - DB2/VTAM PASSWORD //* //DSNBSDS EXEC PGM=DSNJU003 //STEPLIB DD DISP=SHR,DSN=DSN510.DSNLOAD //SYSUT1 DD DISP=OLD,DSN=DSNC510.BSDS01 //SYSUT2 DD DISP=OLD,DSN=DSNC510.BSDS02 //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * DDF LOCATION=NEW_YORK3,LUNAME=NYM2DB2,PASSWORD=PSWDBD1 //* |
DDF が (DB2 ユニバーサル・データベース (OS/390 版) の始動に伴って自動的に、あるいは DB2 ユニバーサル・データベース (OS/390 版) の START DDF コマンドによって) 始動すると、 DDF は VTAM に接続し、LU 名とパスワードを VTAM に渡します。 VTAM は、 LU 名とパスワード (VTAM パスワードが必要な場合) を DB2 ユニバーサル・データベース (OS/390 版) システムの VTAM APPL ステートメントで定義された値と照合することによって、 DB2 ユニバーサル・データベース (OS/390 版) システムを認識します。 VTAM パスワードは、指定された LU 名を DB2 ユニバーサル・データベース (OS/390 版) が VTAM 上で使用する許可を得ているかどうかを検査するために使用されます。 VTAM パスワードはネットワークの中を伝送されることはありませんし、ネットワーク内の他のシステムを DB2 ユニバーサル・データベース (OS/390 版) に接続するために使用されることもありません。
VTAM がパスワードを必要としない場合は、ログ目録変更ユーティリティーで PASSWORD= キーワードを省略してください。このキーワードを指定しないということは、VTAM パスワードが不要であるということです。
VTAM LU 名とパスワードを DB2 ユニバーサル・データベース (OS/390 版) に定義したら、次にこれらの値を VTAM に登録する必要があります。 VTAM では、ローカル LU 名を定義するのに APPL ステートメントを使用します。 図 17 は、LU 名 NYM2DB2 を VTAM に定義する方法を示しています。
図 17. DB2 ユニバーサル・データベース (OS/390 版) の VTAM APPL 定義のサンプル
DB2APPLS VBUILD TYPE=APPL * *--------------------------------------------------------------------* * * * APPL DEFINITION FOR THE NEW_YORK3 DB2 SYSTEM * * * *--------------------------------------------------------------------* * NYM2DB2 APPL APPC=YES, X AUTH=(ACQ), X AUTOSES=1, X DMINWNL=10, X DMINWNR=10, X DSESLIM=20, X EAS=9999, X MODETAB=RDBMODES, X PRTCT=PSWDBD1, X SECACPT=ALREADYV, X SRBEXIT=YES, X VERIFY=NONE, X VPACING=2, X SYNCLVL=SYNCPT, X ATNLOSS=ALL X |
VTAM APPL ステートメントでは多くのキーワードを使用できます。キーワードの意味は、 DB2 ユニバーサル・データベース (OS/390 版) 管理の手引き に詳しく説明されています。ここでは本書の内容に関係のあるキーワードだけを説明します。 図 17 に関係するキーワードを以下に説明します。
任意の 2 つの分散データベース・パートナー間のすべての APPC セッションを自動的に開始する必要はありません。 AUTOSES 値が回線争奪勝者の限度 (DMINWNL) より小さい場合には、分散データベース・アプリケーションが必要とするまで、 VTAM は残りの SNA セッションの開始を遅らせます。
パートナーが DSESLIM、DMINWNL、または DMINWNR パラメーターで要求されたセッションの数をサポートできない場合には、 CNOS 処理はパートナーが受け入れ可能なこれらのパラメーターの新しい値を折衝します。
各 DB2 ユニバーサル・データベース (OS/390 版) パートナーに対する SNA 会話機密保護レベルは、 DB2 ユニバーサル・データベース (OS/390 版) CDB (SYSIBM.LUNAMES 表の USERSECURITY 列) から取られているので、常に SECACPT=ALREADYV を指定するのが最善の方法です。 SECACPT=ALREADYV を指定すると、USERSECURITY の値を柔軟に選択できるようになります。
DB2 ユニバーサル・データベース (OS/390 版) では、VERIFY キーワードの選択に制限はありません。信頼性の低いネットワークの場合は VERIFY=REQUIRED をお勧めします。 VERIFY=REQUIRED を指定すると、パートナー LU 検査を実行できないパートナーを VTAM が拒否することになります。 VERIFY=OPTIONAL を選択すると、 VTAM はサポートを提供するパートナーにのみパートナー LU 検査を実行します。
DSESLIM、DMINWNL、および DMINWNR により、すべてのパートナーに当てはまる、省略時の VTAM セッション限度を確立できます。特殊なセッション限度要件があるパートナーの場合は、 SYSIBM.LUMODES 表を使って省略時のセッション限度をオーバーライドできます。たとえば、OS/2 システムに適した VTAM 省略時セッション限度を指定する場合、他のパートナーに適したセッション限度を定義する行を SYSIBM.LUMODES 表に作成できます。次のサンプル値を考慮してください。
DSESLIM=4,DMINWNL=0,DMINWNR=4
これらのパラメーターにより、各パートナーは、自分が回線争奪勝者であるセッションを最大 4 つまで DB2 ユニバーサル・データベース (OS/390 版) との間で作成できるようになります。 OS/2 は DB2 ユニバーサル・データベース (OS/390 版) と LU 6.2 会話を作成するので、 OS/2 を回線争奪勝者としても大幅なパフォーマンスの向上は望めません。 OS/2 は、使用可能な回線争奪勝者セッションを持っている場合、新しい LU 6.2 会話を開始する許可を求める必要はありません。
読者の便宜のために、この節では DB2 コネクト エンタープライズ・エディション (OS/2 および Windows NT 版) 概説およびインストール を要約しています。詳細については、DB2 ユニバーサル・データベース (OS/390 版) インストレーションの手引き、および DRDA Support for TCP/IP with DB2 Universal Database for OS/390 and DB2 Universal Database を参照してください。
DB2 ユニバーサル・データベース (OS/390 版) との TCP/IP 通信を定義するためのステップは以下のとおりです。
図 18. ブートストラップ・データ・セット DDF 定義 (TCP/IP 用) の例
//SYSADMB JOB ,'DB2 5.1 JOB',CLASS=A //* //* CHANGE LOG INVENTORY: //* UPDATE BSDS WITH //* - DB2 LOCATION NAME FOR NEW_YORK3 //* - VTAM LUNAME (NYM2DB2) //* - DB2/VTAM PASSWORD //* //* - GENERIC LU NAME //* - TCP/IP PORT FOR DATABASE CONNECTIONS //* - TCP/IP PORT FOR RESYNCH OPERATIONS //* //DSNBSDS EXEC PGM=DSNJU003 //STEPLIB DD DISP=SHR,DSN=DSN510.DSNLOAD //SYSUT1 DD DISP=OLD,DSN=DSNC510.BSDS01 //SYSUT2 DD DISP=OLD,DSN=DSNC510.BSDS02 //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD * DDF LOCATION=NEW_YORK3,LUNAME=NTYM2DB2,PASSWORD=PSWDBD1, GENERICLU=name,PORT=446,RESPORT=5001 /* //* |
DB2 ユニバーサル・データベース (OS/390 版) アプリケーションがリモート・システムからのデータを要求する場合、通信データベース (CDB) 表が検索されて、リモート・システムについての情報が検出されます。 CDB は SQL 表のグループであり、DB2 ユニバーサル・データベース (OS/390 版) システム管理者が管理します。 DB2 ユニバーサル・データベース (OS/390 版) システム管理者は、SQL を使用して CDB に行の挿入を行うことにより、使用される可能性のある各 DRDA パートナーを記述することができます。 CDB およびその使用方法に関する完全な説明は、 DB2 ユニバーサル・データベース (OS/390 版) SQL 解説書、および DB2 ユニバーサル・データベース (OS/390 版) インストレーションの手引き を参照してください。
CDB を参照し、以下の情報を探索します。
インバウンド TCP/IP データベース接続のみを使用する場合は、CDB の更新は必要ありません。それで、DB2 ユニバーサル・データベース (OS/390 版) を TCP/IP サーバーとしてのみ使用する計画であるなら、 CDB にデータを読み込む必要はなく、省略時値を使用できます。しかしながら、インバウンド SNA 接続を使用する場合は、 SYSIBM.LUNAMES に少なくとも 1 つのブランク行を含める必要があります。たとえば、任意の着信 DB2 コネクト LU からの SNA データベース接続要求を受け入れられるようにするには、以下のような SQL コマンドを使用します。
INSERT INTO SYSIBM.LUNAMES (LUNAME) VALUES (' ')
DB2 ユニバーサル・データベース (OS/390 版) をリクエスターとして使用する場合は、CDB は常に更新する必要があります。 SYSIBM.LOCATIONS 表、および SYSIBM.LUNAMES 表 (SNA 接続の場合) または SYSIBM.IPNAMES 表 (TCP/IP 接続の場合) のどちらかに行を挿入する必要があります。
さらに、 SNA 接続用のインバウンド機密保護要件またはインバウンド・ユーザー ID 変換を制御したい場合は、追加の CDB 更新が必要となります。追加の例は以下の解説を参照してください。機密保護の提供は、アプリケーション・リクエスターを設定するときにユーザー機密保護を定義する方法を示しています。そして、機密保護の提供はアプリケーション・サーバーの設定について説明しています。
DB2 ユニバーサル・データベース (OS/390 版) 管理の手引き では、 CDB 表を更新するための要件がより詳細に説明されています。 CDB にデータを読み込んだ後、リモート・システム上のデータにアクセスする照会を書き込むことができます。 DB2 ユニバーサル・データベース (OS/390 版) インストレーションの手引き にも CDB の更新に関する詳細な情報があります。
要求を送信するとき、DB2 ユニバーサル・データベース (OS/390 版) は SYSIBM.LOCATIONS カタログ表の LINKNAME 列を使用して、どのネットワーク・プロトコルをアウトバウンド・データベース接続に使用すべきかを決定します。 VTAM 要求を受け取るには、 DB2 ユニバーサル・データベース (OS/390 版) インストール・パネル DSNTIPR 中の LUNAME を選択する必要があります。 TCP/IP 要求を受け取るには、DB2 ユニバーサル・データベース (OS/390 版) インストール・パネル DSNTIP5 中の、 DRDA ポートと再同期ポートを選択する必要があります。 TCP/IP はサーバーのポート番号を使用して、ネットワーク要求を正しい DB2 サブシステムに渡します。
SYSIBM.IPNAMES 表の LINKNAME 列に値が存在する場合、 TCP/IP が DRDA 接続のために使用されます。値が SYSIBM.LUNAMES 表にある場合は、SNA が使用されます。 SYSIBM.LUNAMES と SYSIBM.IPNAMES の両方に同一の名前がある場合は、そのロケーションに接続するために TCP/IP が使用されます。
注: | リクエスターが SNA および TCP/IP プロトコルの両方を使用して、与えられたロケーションに接続することはできません。たとえば、ユーザーの SYSIBM.LOCATIONS で LINKNAME に LU1 が指定されていて、 LU1 が SYSIBM.IPNAMES および SYSIBM.LUNAMES 表の両方で定義されている場合、このリクエスターから LU1 への接続には TCP/IP が使用される唯一のプロトコルとなります。 |
CDB は以下の表で構成されています。
この表によって DB2 ユニバーサル・データベース (OS/390 版) は、 アウトバウンド要求用 DB2 ユニバーサル・データベース (OS/390 版) アプリケーションが選択した各 RDB_NAME にアクセスするのに必要となる SNA または TCP/IP アドレス情報を判別することができます。列は次のとおりです。
リモート・システムが省略時値以外の TPN 値を必要とする場合、ここでその値を指定してください。
この表では、SNA 接続を使用して接続されるリモート・システムのネットワーク属性を定義します。列は次のとおりです。
USERNAMES 列に 'I' または 'B' が含まれている場合、ユーザー ID のみを含んでいる着信接続要求を検査するために RACF が呼び出されることはありません。
アウトバウンド要求のために使用される許可 ID は、USERNAMES 列の値に応じて、 DB2 ユーザーの許可 ID または変換済み ID のどちらかになります。
USERNAMES 列では 'B' または 'O' を指定する必要があります。
MODESELECT に 'Y' 以外の値が入っている場合、システム主導アクセス要求にモード名 IBMDB2LM が使用され、 DRDA 要求にモード名 IBMRDB が使用されます。
モード名に関連した VTAM サービス・クラス (COS) を指定することにより、 MODESELECT 列を使って分散データベース要求を優先順位付けすることが可能になります。
この表は、APPC (SNA) 接続を使用するパートナー・システム用に、 VTAM に LU 6.2 セッション制限 (CNOS 制限) を設けるために使用されます。列は次のとおりです。
CONVLIMIT に指定された値は、 CNOS 中に DMINWNR および DMINWNL 値を CONVLIMIT/2 に設定するために使用されます。
この表により、エンド・ユーザーおよび DB2 ユニバーサル・データベース (OS/390 版) アプリケーションごとに異なるモード名を指定できるようになります。これは SNA 接続でのみ使用されます。各 VTAM モード名にはサービス・クラス (COS) を関連付けることができるので、この表を使って、AUTHID、PLANNAME、および LUNAME の組み合わせに基づいて、分散データベース・アプリケーションにネットワーク伝送優先順位を割り当てることができます。列は次のとおりです。
この表は、パスワード、名前変換、および come-from 検査を指定することによって、エンド・ユーザー名を管理するために使用します。 DB2 ユニバーサル・データベース (OS/390 版) はエンド・ユーザー名を許可 ID として参照します。他の製品の大部分は、この名前をユーザー ID として参照します。
この表で、ユーザーはユーザー名変換を使用して、ユーザー ID 接続および DB2 ユニバーサル・データベース (OS/390 版) 許可 ID として異なった値を使用するように強制することができます。名前変換処理は、リモート・システムへの要求 (アウトバウンド 要求) のため、およびリモート・システムから送られてくる要求 (インバウンド 要求) のために、行うことができます。パスワードが暗号化されていない場合、ユーザー ID とパスワードの両方をリモート・サイトに送るときに、この表はエンド・ユーザーのパスワードの情報源となります。列は次のとおりです。
I はインバウンド接続を示し、 O はアウトバウンド接続を示します。
TCP/IP 接続には "O" を使用してください。 (インバウンド ID 変換と come-from 検査は TCP/IP 要求に対してはなされません。)
非ブランクの LINKNAME が指定されていれば、次の条件のうちの 1 つまたは両方が真である必要があります。
インバウンド名前変換および come-from 検査は、TCP/IP クライアントに対しては実行されません。
この表は、TCP/IP ノードのために使用されます。
アウトバウンド要求のために使用される許可 ID は、USERNAMES 列の値に応じて、 DB2 ユーザーの許可 ID または変換済み ID のどちらかになります。
USERNAMES 列では "O" を指定する必要があります。
インバウンド ID については、変換または "come-from" 検査は実行されません。
VTAM は、OS/390 システム用のコミュニケーション・マネージャーです。 VTAM は DB2 ユニバーサル・データベース (OS/390 版) から LU 6.2 verb を受け入れ、これらの verb をユーザーがネットワーク上で送信可能な LU 6.2 データ・ストリームに変換します。 VTAM が DB2 ユニバーサル・データベース (OS/390 版) CDB で定義されたパートナー・アプリケーションと通信するためには、以下の情報を VTAM に提供しなければなりません。
DB2 ユニバーサル・データベース (OS/390 版) が VTAM と通信するときは、望む宛先を識別するために (NETID.LUNAME ではなく) LU 名だけを VTAM に渡すことができます。 DB2 ユニバーサル・データベース (OS/390 版) から渡される LU 名の値から VTAM が NETID と LU 名の両方を判別できるようにするためには、ローカル VTAM システムが認識している LU 名の中で、この LU 名が固有のものである必要があります。 LU 名が企業の SNA ネットワーク全体に渡って固有のものであるなら、 VTAM の資源定義の処理は大幅に単純化されます。ただし、これは必ずしも可能であるとは限りません。 LU 名が SNA ネットワークの中で固有のものでないなら、 VTAM の LU 名変換を使用して、固有でない LU 名のために NETID.LUNAME の正しい組み合わせを構築する必要があります。この処理については、 VTAM ネットワーク導入の手引き (MVS/ESA) の『資源名変換』で説明されています。
リモート LU 名を定義するために用いられる VTAM の定義の配置と構文は、リモート・システムが論理的および物理的にどのようにローカル VTAM システムに接続されているかに応じて異なります。
定義する VTAM モード表によって、RU サイズと歩調合わせカウントが指定されます。これらの値を正しく定義できていないと、すべての VTAM アプリケーションに悪影響を与える可能性があります。
RU サイズ、セッション限度、および歩調合わせカウントを選択した後、これらの値が既存の VTAM ネットワークに与える影響を考慮することは非常に重要です。新しい分散データベース・システムをインストールするときには、以下の項目を復習してください。
NCP MAXBFRU パラメーターを指定する場合には、 RU サイズに 29 バイトを加えた大きさが入る値を選択してください。 NCP では、MAXBFRU パラメーターによって、 PIU を保持するのに使用できる VTAM I/O バッファーの数を定義します。 IOBUF バッファー・サイズを 441 と選択する場合、 10*441 は 4096+29 より大きいため、 MAXBFRU=10 は 4K RU を正しく処理します。
この考慮事項については、以前に記述したとおりです (ローカル・システム (TCP/IP) の定義を参照してください)。
リモート・システムが SQL アプリケーションに代わって分散データベース処理を実行する場合には、アプリケーション・リクエスター、アプリケーション・サーバー、およびそれらに接続しているネットワークの機密保護要件を満たさなければなりません。これらの要件は、以下のカテゴリーのいくつかに分けられます。
OS/390 システムでは、エンド・ユーザーに 1〜8 文字のユーザー ID が割り当てられます。このユーザー ID 値は、特定の OS/390 システムで固有でなければなりませんが、ネットワーク全体で固有でなくてもかまいません。たとえば、NEWYORK システムで JONES というユーザーがいて、 DALLAS システムでまた JONES というユーザーがいてもかまいません。この 2 人のユーザーが同一の人であれば、対立は起きません。しかし、DALLAS の JONES が NEWYORK の JONES とは別人の場合、 SNA ネットワーク (およびそのネットワークの分散データベース・システム) は、 NEWYORK の JONES と DALLAS の JONES とを区別できません。この状況を訂正しない場合には、 DALLAS の JONES は NEWYORK システムの JONES に与えられた特権を使用できます。
名前の対立を解消するため、DB2 ユニバーサル・データベース (OS/390 版) はエンド・ユーザー名前変換のサポートを提供します。 DB2 ユニバーサル・データベース (OS/390 版) アプリケーション・リクエスターでアプリケーションが分散データベース要求を行うとき、通信データベースでアウトバウンド名前変換 が必要であると指定されていれば、 DB2 ユニバーサル・データベース (OS/390 版) は名前変換を実行します。アウトバウンド名前変換が選択されていると、 DB2 ユニバーサル・データベース (OS/390 版) は必ず各アウトバウンド分散データベース要求と一緒にパスワードを強制的に送信します。
DB2 ユニバーサル・データベース (OS/390 版) のアウトバウンド名前変換は、 SYSIBM.LUNAMES または SYSIBM.IPNAMES 表の USERNAMES 列を 'O' または 'B' に設定すると活動化されます。 USERNAMES を 'O' に設定すると、アウトバウンド要求でエンド・ユーザー名前変換が実行されます。 USERNAMES を 'B' に設定すると、インバウンド要求とアウトバウンド要求の両方でエンド・ユーザー名前変換が実行されます。
DB2 ユニバーサル・データベース (OS/390 版) の許可は、エンド・ユーザーのユーザー ID および DB2 ユニバーサル・データベース (OS/390 版) プランまたはパッケージ所有者のユーザー ID に依存しているため、エンド・ユーザー名前変換処理は、エンド・ユーザーのユーザー ID、プラン所有者のユーザー ID、およびパッケージ所有者のユーザー ID に対して実行されます。 3 名前変換処理に際しては、SYSIBM.USERNAMES 表から以下の順序で以下のパターン (TYPE.AUTHID.LINKNAME) に一致する行が探索されます。
一致する行が見つからないと、DB2 ユニバーサル・データベース (OS/390 版) は分散データベース要求を拒否します。行が見つかると、NEWAUTHID 列の値が許可 ID として使用されます (ブランクの NEWAUTHID 値は、元の名前を変換しないで使用することを意味します)。
前述の例を考慮してみましょう。 NEWYORK の JONES が DALLAS に分散データベース要求を出す場合、この JONES に別の名前 (NYJONES) を与えたいものとします。この例において、 JONES が使用するアプリケーションは DSNPLAN (DB2 ユニバーサル・データベース (OS/390 版) プラン所有者) の所有で、 DALLAS に送信を行うときにこのユーザー ID の変換は不要であるものとします。 CDB に名前変換規則を指定するのに必要な SQL ステートメントを図 19 に示します。
INSERT INTO SYSIBM.LUNAMES (LUNAME, SYSMODENAME, SECURITY_OUT, ENCRYPTPSWDS, MODESELECT, USERNAMES) VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', 'O'); INSERT INTO SYSIBM.LOCATIONS (LOCATION, LINKNAME, LINKATTR) VALUES ('DALLAS', 'LUDALLAS', ''); INSERT INTO SYSIBM.USERNAMES (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'JONES', 'LUDALLAS', 'NYJONES', 'JONESPWD'); INSERT INTO SYSIBM.USERNAMES (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'DSNPLAN', 'LUDALLAS', ' ', 'PLANPWD'); |
結果として得られる CDB 表を図 20 に示します。
![]() |
図 21 に、 SNA 接続を使用して DB2 ユニバーサル・データベース DRDA AS に接続するためのより簡単な例を示します。
図 21. アウトバウンド名前変換用 SQL (SNA 用の簡単な例)
INSERT INTO SYSIBM.LUNAMES (LUNAME, SECURITY_OUT, ENCRYPTPSWDS, USERNAMES) VALUES ('NYX1GW01','P','N','O'); INSERT INTO SYSIBM.LOCATIONS (LOCATION,LINKNAME,TPN) VALUES('TASG6', 'NYX1GW01','NYSERVER'); INSERT INTO SYSIBM.USERNAMES (TYPE,AUTHID,LINKNAME,NEWAUTHID,PASSWORD) VALUES ('O',' ','NYX1GW01','SVTDBM6','SG6JOHN'); |
図 22 に TCP/IP 接続を使用して DB2 ユニバーサル・データベース DRDA AS に接続するための簡単な例を示します。
図 22. アウトバウンド名前変換用 SQL (TCP/IP 用の簡単な例)
-- DB2 for Solaris1 - UNIX DELETE FROM SYSIBM.IPNAMES WHERE LINKNAME = 'SOLARIS1' ; INSERT INTO SYSIBM.IPNAMES ( LINKNAME , SECURITY_OUT , USERNAMES , IBMREQD , IPADDR) VALUES ( 'SOLARIS1' , 'P' , 'O' , 'N' , '9.21.45.4') ; INSERT INTO SYSIBM.LOCATIONS ( LOCATION , LINKNAME , IBMREQD , PORT , TPN) VALUES ( 'TCPDB1' , 'SOLARIS1' , 'N' , '30088' , '') ; INSERT INTO SYSIBM.USERNAMES ( TYPE , AUTHID , LINKNAME , NEWAUTHID , PASSWORD , IBMREQD) VALUES ( 'O' , '' , 'SOLARIS1' , 'svtdbm5' , 'svt5dbm' , 'N') ; |
アプリケーション・リクエスターがリモート・アプリケーションを示すエンド・ユーザー名を選択した後は、そのアプリケーション・リクエスターは必要なネットワーク機密保護情報を提供しなければなりません。
SNA 接続では、LU 6.2 は主に 3 つのネットワーク機密保護機能を提供します。
アプリケーション・サーバーの責任でデータベース資源を管理するため、アプリケーション・サーバーは、どのネットワーク機密保護にアプリケーション・リクエスターが必要かを指示します。各アプリケーション・サーバーの会話レベル機密保護要件を SYSIBM.LUNAMES 表または SYSIBM.IPNAMES 表に記録する必要があります。そのためには USERNAMES 列を、アプリケーション・サーバーの要件を反映するように設定します。
SNA 会話機密保護オプションは以下のとおりです。
DB2 ユニバーサル・データベース (OS/390 版) ではエンド・ユーザー名前変換がアウトバウンド会話機密保護に関連付けられているので、アウトバウンド・エンド・ユーザー名変換が活動化されている場合に SECURITY=SAME を使用することはできません。
SYSIBM.LUNAMES 表に指定されているオプションに応じて、 DB2 ユニバーサル・データベース (OS/390 版) は 2 つの異なる情報源からユーザーのパスワードを取得します。
図 23 では、SMITH と JONES のパスワードを定義しています。この例の LUNAME 列はブランクなので、これらのパスワードは SMITH または JONES がアクセスしようとするどのリモート・システムでも使用できます。
図 23. リモート・サイトへのパスワードの送信 (SNA)
INSERT INTO SYSIBM.USERNAMES (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'JONES', ' ', ' ', 'JONESPWD'); INSERT INTO SYSIBM.USERNAMES (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'SMITH', ' ', ' ', 'SMITHPWD'); |
DB2 ユニバーサル・データベース (OS/390 版) は SYSIBM.USERNAMES 表を探索して、リモート・システムに送信するユーザー ID (NEWAUTHID 値) を判別します。変換されたこの名前は、RACF のパスワード抽出のために使用されます。名前を変換したくない場合は、名前を変換しないで送信するための行を SYSIBM.USERNAMES の中に作成する必要があります。 図 24 は、エンド・ユーザー名 (ユーザー ID) を変換せずに要求を LUDALLAS と LUNYC に送信できるようにします。
図 24. リモート・サイトへの暗号化パスワードの送信 (SNA)
INSERT INTO SYSIBM.USERNAMES (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) VALUES ('O', ' ', 'LUNYC', ' ', ' '); INSERT INTO SYSIBM.USERNAMES (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) VALUES ('O', ' ', 'LUDALLAS', ' ', ' '); |
アプリケーション・リクエスターが分散データベースの機密保護に貢献できる 1 つの方法は、前に エンド・ユーザー名の選択で説明されたように、アウトバウンド・ユーザー名前変換です。アウトバウンド・ユーザー名前変換を使用すると、要求を出しているユーザーおよびアプリケーションの ID に従って、各アプリケーション・サーバーへのアクセスを制御できます。その他に、DB2 ユニバーサル・データベース (OS/390 版) アプリケーション・リクエスターが分散システムの機密保護に貢献できる方法には以下のものがあります。
パッケージをバインドするときは、 ENABLE/DISABLE オプションを使用して、パッケージを TSO、CICS/ESA、IMS/ESA、またはリモート DB2 ユニバーサル・データベース (OS/390 版) サブシステムから使用できるかどうかを指定してください。
OS/390 システムの外部機密保護サブシステムは、通常、 RACF または RACF と互換性のあるインターフェースを備えた他の製品により提供されます。 DB2 ユニバーサル・データベース (OS/390 版) アプリケーション・リクエスターには、外部の機密保護サブシステムを直接呼び出すことはありません。ただし、ネットワーク機密保護で説明された暗号化パスワード・サポートは例外です。しかし、以下の状況ではアプリケーション・リクエスターで外部機密保護サブシステムが間接的に使用されます。
DB2 ユニバーサル・データベース (OS/390 版) は、省略時のインストール・システム・コード化文字セット ID (CCSID) が 500 の状態で出荷されています。この省略時値はおそらく、ご使用のインストール・システムでは正しくない でしょう。
DB2 ユニバーサル・データベース (OS/390 版) をインストールするときには、インストール・システムの CCSID を、ご使用のサイトの入力装置が生成して DB2 ユニバーサル・データベース (OS/390 版) に送る文字の CCSID に設定する必要があります。通常、この CCSID はご使用になる言語によって決定されます。インストール・システムの CCSID が間違っていると、文字変換の結果が誤ったものになります。国別または言語別のサポートされる CCSID のリストについては、 DB2 コネクト 使用者の手引き を参照してください。
ご使用の DB2 ユニバーサル・データベース (OS/390 版) サブシステムが、各アプリケーション・サーバーの CCSID を DB2 ユニバーサル・データベース (OS/390 版) サブシステムのインストール・システムの CCSID に変換できるかどうか確認する必要があります。変換元 CCSID と変換先の CCSID の一般的な組み合わせについては、 DB2 ユニバーサル・データベース (OS/390 版) に変換テーブルが用意されていますが、可能なすべての組み合わせに対応しているわけではありません。必要であれば、使用可能な変換テーブルと変換ルーチンのセットを追加できます。 DB2 ユニバーサル・データベース (OS/390 版) 文字変換の詳細については、 DB2 ユニバーサル・データベース (OS/390 版) 管理の手引き を参照してください。