Дополнение по возможностям соединений

Конфигурирование реквестера прикладных программ

DB2 Universal Database for OS/390 реализует поддержку реквестера прикладных программ DRDA как составную часть утилиты DDF DB2 Universal Database for OS/390. DDF может быть остановлена независимо от локальных утилит управления базами данных DB2 Universal Database for OS/390, но она не может выполняться в отсутствие локальных средств управления базами данных.

Когда DB2 Universal Database for OS/390 выступает в роли реквестера прикладных программ, она может соединять программы, выполняемые в системе, с удаленными серверами баз данных DB2 Universal Database, DB2 for MVS/ESA, DB2 Universal Database for OS/390, DB2 Universal Database for AS/400 и DB2 for VSE & VM, поддерживающими функции сервера прикладных программ DRDA.

Чтобы обеспечить доступ к распределенной базе данных для реквестера прикладных программ DB2 Universal Database for OS/390, необходимо следующее:

Задание сетевой информации

При работе в среде распределенной базы данных постоянно требуется обмен сообщениями с другими узлами сети. Чтобы обеспечить корректную работу, нужно выполнить следующие действия:

  1. Определить локальную систему
  2. Определить удаленные системы
  3. Определить связь (для соединений SNA или TCP/IP)
  4. Задать размеры RU и синхронизацию связи (только для соединений SNA)

Смотрите раздел Определение локальной системы (SNA) или Определение локальной системы (TCP/IP).

Определение локальной системы (SNA)

Каждой программе в сети SNA присваивается NETID и имя LU, поэтому у реквестера прикладных программ DB2 Universal Database for OS/390, когда он устанавливает сетевое соединение, должно быть определенное значение NETID.LUNAME (назначенное VTAM). Поскольку Реквестер прикладных программ DB2 Universal Database for OS/390 встроен в локальную систему управления базами данных DB2 Universal Database for OS/390, Реквестер прикладных программ должен также иметь RDB_NAME. В публикациях по DB2 Universal Database for OS/390 RDB_NAME называется именем положения (location name).

Определите Реквестер прикладных программ DB2 Universal Database for OS/390 для сети SNA следующим образом:

  1. Выберите для вашей системы DB2 Universal Database for OS/390 имя LU. NETID система DB2 Universal Database for OS/390 автоматически получает от VTAM, когда запускается DDF.
  2. Определите имя LU и имя положения в загрузочном наборе данных DB2 Universal Database for OS/390 (BSDS). (В DB2 Universal Database for OS/390 длина имени положения ограничена 16 символами.)
  3. Создайте определение VTAM APPL для регистрации выбранного имени LU с VTAM.
  4. Убедитесь, что для опции Extended Security задано значение YES. Смотрите раздел Дополнительные средства защиты.

Конфигурирование BSDS DDF

DB2 Universal Database for OS/390 читает BSDS при пуске, чтобы получить параметры установки системы. Одна из хранящихся в BSDS записей называется записью DDF, потому что в ней содержится информация, используемая DDF для соединения с VTAM. В эту информацию входит:

Информацию BSDS DDF можно предоставить DB2 Universal Database for OS/390 двумя способами:

Когда запускается DDF (автоматически при запуске DB2 Universal Database for OS/390 или по команде DB2 Universal Database for OS/390 START DDF), она устанавливает соединение с VTAM, передав ему имя LU и пароль. VTAM распознает систему DB2 Universal Database for OS/390, сверяя имя LU и пароль (если требуется пароль VTAM) со значениями, определенными в операторе DB2 Universal Database for OS/390 VTAM APPL. Пароль VTAM используется для проверки того, что DB2 Universal Database for OS/390 имеет право использовать указанное имя LU в системе VTAM. Пароль VTAM не передается через сеть и не используется для установления соединения других систем сети с DB2 Universal Database for OS/390.

Если VTAM не требует пароля, опустите PASSWORD= keyword в утилите изменения параметров журнала. Отсутствие этого ключевого слова указывает на то, что пароль VTAM не нужен.

Создание определения VTAM APPL

После того как имя LU и пароль VTAM определены для DB2 Universal Database for OS/390, нужно зарегистрировать эти значения в VTAM. VTAM использует оператор APPL для задания локальных имен LU. На Рис. 17 показано, как определить для VTAM имя LU NYM2DB2.

Рис. 17. Пример определения в оператора APPL VTAM для DB2 Universal Database for OS/390

 DB2APPLS VBUILD TYPE=APPL
 *
 *--------------------------------------------------------------------*
 *                                                                    *
 *           ОПРЕДЕЛЕНИЕ APPL ДЛЯ СИСТЕМЫ DB2 NEW_YORK3               *
 *                                                                    *
 *--------------------------------------------------------------------*
 *
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 Universal Database for OS/390 Administration Guide. Здесь рассматриваются только ключевые слова, имеющие отношение к теме этой книги. Интересующие нас на Рис. 17 ключевые слова означают следующее:

NYM2DB2
VTAM использует метку оператора APPL в качестве имени LU. В данном случае имя LU - NYM2DB2. Синтаксис APPL не позволяет выделить достаточно места для ввода полного значения NETID.LUNAME. Значение NETID не указывается при операторе VTAM APPL, поскольку всем прикладным программам VTAM для системы VTAM автоматически назначается NETID.

AUTOSES=1
Число сеансов SNA - победителей конфликтов, которые автоматически запускаются при выдаче требования APPC изменить число сеансов (CNOS). Чтобы информировать DB2 Universal Database for OS/390 во всех случаях, когда выполнение CNOS VTAM завершается неудачно, для AUTOSES должно быть задано ненулевое значение.

Вам не надо автоматически запускать все сеансы APPC между всеми парами партнеров распределенных баз данных. Если значение AUTOSES меньше, чем предельное число победителей конфликтов (DMINWNL), VTAM откладывает запуск всех остальных сеансов SNA до тех пор, пока они не будут востребованы прикладной программой распределенной базы данных.

DMINWNL=10
Число сеансов, в которых данная система DB2 Universal Database for OS/390 выигрывает конфликт. Этот параметр DMINWNL устанавливается по умолчанию для работы CNOS, но его можно переопределить для любого партнера, добавив строку в таблицу SYSIBM.LUMODES в CDB DB2 Universal Database for OS/390.

DMINWNR=10
Число сеансов, в которых система партнера выигрывает конфликт. Этот параметр DMINWNR устанавливается по умолчанию для работы CNOS, но его можно переопределить для любого партнера, добавив строку в таблицу SYSIBM.LUMODES в CDB DB2 Universal Database for OS/390.

DSESLIM=20
Общее число сеансов (победителей и проигравших), которые можно открыть между DB2 Universal Database for OS/390 и другой распределенной системой для определенного имени группы режимов. Этот параметр DSESLIM устанавливается по умолчанию для работы CNOS, но его можно переопределить для любого партнера, добавив строку в таблицу SYSIBM.LUMODES в CDB DB2 Universal Database for OS/390.

Если партнер не поддерживает число сеансов, указанное в параметрах DSESLIM, DMINWNL или DMINWNR, процесс CNOS согласует новые значения, приемлемые для партнера.

EAS=9999
Оценка общего числа сеансов, требуемых данному LU VTAM.

MODETAB=RDBMODES
Задает таблицу VTAM MODE, содержащую все имена режимов DB2 Universal Database for OS/390.

PRTCT=PSWDBD1
Задает пароль VTAM, используемый DB2 Universal Database for OS/390 при установлении соединения с VTAM. Если ключевое слово PRTCT опущено, пароль не требуется, и следует также опустить ключевое слово password= в утилите изменения журнала DB2 Universal Database for OS/390.

SECACPT=ALREADYV
Указывает наивысшее значение защиты уровня диалога SNA, принимаемое данной системой DB2 Universal Database for OS/390, когда она получает требование распределенной базы данных от удаленной системы. Ключевое слово ALREADYV означает, что система DB2 Universal Database for OS/390 может принять три опции защиты сеанса SNA от другой системы DRDA, затребовавшей данные от системы DB2 Universal Database for OS/390:

Лучше всегда задавать SECACPT=ALREADYV, потому что уровень защиты диалога SNA для каждого партнера DB2 Universal Database for OS/390 определяется из CDB DB2 Universal Database for OS/390 (столбец USERSECURITY в таблице SYSIBM.LUNAMES). SECACPT=ALREADYV дает максимальную гибкость в выборе значений для USERSECURITY.

VERIFY=NONE
Указывает уровень защиты диалога SNA (верификация LU партнера), который требует данная система DB2 Universal Database for OS/390. NONE означает, что верификация LU партнера не требуется.

DB2 Universal Database for OS/390 не ограничивает выбор значений для ключевого слова VERIFY. В непроверенной сети рекомендуется использовать VERIFY=REQUIRED. VERIFY=REQUIRED вынуждает VTAM отвергать партнеров, которые не могут выполнить верификацию LU партнера. Если выбрано VERIFY=OPTIONAL, VTAM выполняет верификацию LU партнера только для тех партнеров, которые предоставляют поддержку для такой верификации.

VPACING=2
Устанавливает счетчик синхронизации связи, равный 2.

SYNCLVL=SYNCPT
Указывает, что DB2 Universal Database for OS/390 поддерживает двухфазное принятие изменений. VTAM использует эту информацию, чтобы сообщить партнеру, что двухфазное принятие изменений доступно. Когда указано это ключевое слово, DB2 Universal Database for OS/390 автоматически использует двухфазное принятие изменений, если оно поддерживается партнером.

ATNLOSS=ALL
Указывает, что DB2 Universal Database for OS/390 должен получать оповещение, когда заканчивается сеанс VTAM. Это гарантирует, что DB2 Universal Database for OS/390 будет выполнять ресинхронизацию SNA, когда она требуется.

DSESLIM, DMINWNL и DMINWNR позволяют установить предельное число сеансов по умолчанию для всех партнеров. Для партнеров, которые предъявляют особые требования к количеству сеансов, можно при помощи таблицы SYSIBM.LUMODES переопределить предельное число сеансов по умолчанию. Например, вы хотите задать предельное число сеансов VTAM по умолчанию, подходящее для ваших систем OS/2. Для других партнеров можно добавить строки в таблицу SYSIBM.LUMODES и определить в них нужные предельные числа сеансов. Например, можете задать такие значения:

   DSESLIM=4,DMINWNL=0,DMINWNR=4

Эти параметры позволяют каждому партнеру создать до четырех сеансов связи с DB2 Universal Database for OS/390, в каждом из которых партнер выигрывает конфликт. Поскольку OS/2 создает диалоги LU 6.2 с DB2 Universal Database for OS/390, задавая OS/2 в качестве победителя конфликта в сеансах, вы получите небольшой выигрыш в производительности. Если у OS/2 есть доступный сеанс-победитель конфликта, ей не нужно запрашивать разрешение на открытие нового диалога LU 6.2.

Определение локальной системы (TCP/IP)

Для удобства в этом разделе помещена сводка информации из руководства DB2 Connect Enterprise Edition for OS/2 and Windows Quick Beginnings. Более подробные сведения смотрите в справочниках DB2 Universal Database for OS/390 Installation Reference и DRDA Support for TCP/IP with DB2 Universal Database for OS/390 and DB2 Universal Database.

Чтобы определить связь TCP/IP для DB2 Universal Database for OS/390, необходимо следующее:

  1. TCP/IP должен быть включен на DB2 Universal Database for OS/390 и на системе партнера.
  2. Системный администратор должен отвести два подходящих порта TCP/IP. По умолчанию DB2 Universal Database for OS/390 использует порт 446 для связи с базами данных, а порт 5001 для запросов ресинхронизации (при двухфазном принятии).
  3. Удаленный сервер прикладных программ или реквестер прикладных программ должны использовать тот же порт (или имя службы), что и DB2 Universal Database for OS/390.
  4. Опция защиты TCP/IP "уже-проверен" (already verified) должна иметь значение YES. Смотрите раздел Дополнительные средства защиты.
  5. BSDS DB2 Universal Database for OS/390 должен содержать дополнительные параметры. Дополнительные параметры, требуемые для включения связи TCP/IP, показаны на Рис. 18.

    Рис. 18. Пример определения загрузочного набора данных DDF (для TCP/IP)

    //SYSADMB JOB ,'DB2 5.1 JOB',CLASS=A
    //*
    //*        ИЗМЕНЕНИЕ ПАРАМЕТРОВ ЖУРНАЛА
    //*        В BSDS ЗАНОСИТСЯ
    //*             - DB2 LOCATION NAME FOR NEW_YORK3
    //*             - VTAM LUNAME (NYM2DB2)
    //*             - ПАРОЛЬ DB2/VTAM
    //*
    //*             - 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 Universal Database for OS/390 запрашивает данные из удаленной системы, она ищет информацию об удаленной системе в таблицах базы данных связей (CDB). CDB - это группа таблиц SQL, находящихся в ведении системного администратора DB2 Universal Database for OS/390. В качестве системного администратора DB2 Universal Database for OS/390 вы можете, пользуясь SQL, вставить строки в CDB, чтобы описать всех потенциальных партнеров DRDA. Полное описание CDB и ее использования можно найти в руководствах DB2 Universal Database for OS/390 SQL Reference и DB2 Universal Database for OS/390 Installation Guide.

В CDB надо искать следующую информацию:

Заполнение базы данных связей

Если будут использоваться только входящие соединения TCP/IP с базами данных, изменять CDB не нужно, поэтому если планируется использовать DB2 Universal Database for OS/390 только как сервер TCP/IP, не заполняйте CDB, достаточно использовать значения по умолчанию. Однако если будут использоваться входящие соединения, нужно по крайней мере вставить пустую строку в SYSIBM.LUNAMES. Например, чтобы разрешить принятие требований установления соединения SNA с базой данных от входящих LU DB2 Connect, используйте следующую команду SQL:

   INSERT INTO SYSIBM.LUNAMES (LUNAME) VALUES ('        ')                        

Если DB2 Universal Database for OS/390 будет использоваться как реквестер, изменить CDB надо обязательно. Нужно вставить строки в таблицу SYSIBM.LOCATIONS, а также либо в таблицу SYSIBM.LUNAMES (для соединений SNA), либо в таблицу SYSIBM.IPNAMES (для соединений TCP/IP).

Далее, если вы хотите задать требования входной защиты или преобразование ID пользователя на входе, потребуются дополнительные изменения CDB. Дополнительные примеры для этих случаев: в разделе Обеспечение защиты описывается, как определить пользовательскую защиту при настройке реквестера прикладных программ, а в разделе Обеспечение защиты - настройка сервера прикладных программ.

В руководстве DB2 Universal Database for OS/390 Administration Guide изменение таблиц CDB описывается более подробно. После заполнения CDB можно писать запросы, которые будут обращаться к данных на удаленных системах. Сведения об изменении CDB можно найти также в руководстве DB2 Universal Database for OS/390 Installation Reference.

Как база данных связей обрабатывает требования

При отправке требования DB2 Universal Database for OS/390 использует столбец LINKNAME таблицы каталога SYSIBM.LOCATIONS, чтобы определить, какой сетевой протокол использовать для исходящих соединений с базами данных. Для получения требований VTAM нужно выбрать LUNAME на панели DSNTIPR установки DB2 Universal Database for OS/390. Чтобы принимать требования TCP/IP, нужно выбрать порт DRDA и порт ресинхронизации на панели установки DSNTIP5. TCP/IP использует номер порта сервера для передачи сетевых требований нужной подсистеме DB2.

Если значение из столбца LINKNAME найдено в таблице SYSIBM.IPNAMES, для соединений DRDA используется TCP/IP. Если значение найдено в таблице SYSIBM.LUNAMES, используется SNA. Если одно и то же имя встречается и в SYSIBM.LUNAMES, и в SYSIBM.IPNAMES, для соединения с узлом используется TCP/IP.
Прим.:Реквестер не может установить соединение с данным узлом, используя и протокол SNA, и TCP/IP. Например, если в SYSIBM.LOCATIONS указано в LU1 в столбце LINKNAME, и если LU1 определено и в таблице SYSIBM.IPNAMES, и в SYSIBM.LUNAMES, для соединения данного реквестера с LU1 будет использоваться только протокол TCP/IP.

Таблицы базы данных связей

CDB состоит из следующих таблиц:

  1. SYSIBM.LOCATIONS

    Эта таблица позволяет DB2 Universal Database for OS/390 получить информацию об адресах SNA или TCP/IP, которая требуется при обращении к каждому из RDB_NAME, определенных прикладной программой DB2 Universal Database for OS/390 для исходящих требований. Столбцы:

    LOCATION
    RDB_NAME удаленной системы. В DB2 Universal Database for OS/390 длина RDB_NAME ограничена 16 символами, что на 2 байта меньше, чем в DRDA (18 символов).

    LINKNAME
    Имя LU или атрибуты TCP/IP удаленной системы.

    PORT
    Информация о порте TCP/IP или имени службы (порт по умолчанию для DRDA - 446).

    TPN
    Имя программы транзакций (TPN) APPC удаленной системы. Если удаленная система - система DB2 Universal Database for OS/390, или она использует принятое в DRDA по умолчанию значение TPN (X'07F6C4C2'), в качестве имени можно указать пустую строку, поскольку DB2 Universal Database for OS/390 автоматически выбирает правильное значение.

    Если для удаленной системы требуется значение TPN, отличное от принятого по умолчанию, нужно указать здесь это значение.

  2. SYSIBM.LUNAMES

    В этой таблице определяются сетевые атрибуты удаленных систем, с которыми устанавливаются соединения SNA. Столбцы:

    LUNAME
    Имя LU удаленной системы.

    SYSMODENAME
    Имя режима регистрации VTAM, используемое для открытия межсистемных диалогов DB2 Universal Database for OS/390-DB2 Universal Database for OS/390 для поддержки вторичных серверов DB2 Universal Database for OS/390 (доступ, управляемый системой). Пустое значение в этом столбце означает, что для системных диалогов DB2 Universal Database for OS/390 надо использовать IBMDB2LM.

    SECURITY_IN
    Опции сетевой защиты, требуемые от удаленной системы, когда данная система DB2 Universal Database for OS/390 выступает в качестве сервера для удаленной системы (требования защиты на входе). Возможны следующие значения:
    • V означает опцию "verify". Входящее требование установления соединения должно содержать либо ID пользователя и пароль, либо ID пользователя и PassTicket RACF, либо квитанцию защиты DCE.
    • A означает опцию "already verified" ("уже проверен"). Требование не обязано содержать пароль, хотя пароль и проверяется, если он посылается. При этой опции входящее требование соединения принимается, если оно содержит: ID пользователя, или ID пользователя и пароль, или ID пользователя и RACF PassTicket, или квитанцию защиты DCE.

      Если столбец USERNAMES содержит 'I' или 'B', для проверки входящих требований соединения, содержащих только ID пользователя, RACF не вызывается.

    SECURITY_OUT
    Опции сетевой защиты, требуемые от удаленной системы, когда данная система DB2 Universal Database for OS/390 выступает в качестве реквестера. (требования защиты на выходе). Возможны следующие значения:
    • A означает опцию "already verified" ("уже проверен"). Исходящие требования соединения содержат ID авторизации и не содержат пароля. ID авторизации, используемый для исходящего требования - либо ID авторизации пользователя DB2, либо преобразованный ID, в зависимости от значения в столбце USERNAMES.
    • R означает опцию "RACF PassTicket". Исходящие требования соединения содержат ID пользователя и PassTicket RACF. Имя LU сервера используется как имя программы PassTicket RACF.

      ID авторизации, используемый для исходящего требования - либо ID авторизации пользователя DB2, либо преобразованный ID, в зависимости от значения в столбце USERNAMES.

    • P означает опцию "password". Исходящие требования соединения содержат ID авторизации и пароль. Пароль берется из таблицы SYSIBM.USERNAMES или RACF, в зависимости от значения, указанного в столбце ENCRYPTPWDS.

      В столбце USERNAMES должно быть указано 'B' или 'O'.

    ENCRYPTPSWDS
    Зашифрованы ли пароли, которыми был произведен обмен с этим партнером. Шифрование паролей поддерживается только серверами и реквестерами DB2 Universal Database for OS/390.

    MODESELECT
    Указывает, должна ли использоваться таблица SYSIBM.MODESELECT для выбора режима регистрации VTAM (имени режима) в зависимости от конечного пользователя и программы, пославшей требование. Если в этом столбце стоит 'Y', таблица SYSIBM.MODESELECT используется для получения имени режима для каждого исходящего требования распределенной базы данных.

    Если MODESELECT содержит не 'Y', для требований доступа, управляемого системой, используется имя режима IBMDB2LM, а для требований DRDA - имя режима IBMRDB.

    Столбец MODESELECT позволяет задать приоритеты для требований распределенной базы данных, указав класс обслуживания VTAM (COS), связанный с именем режима.

    USERNAMES
    Требуемый уровень проверки отправителя и преобразовании ID пользователя. В этом столбце также указываются параметры защиты, которые данная подсистема DB2 Universal Database for OS/390 использует при запрашивании данных от удаленного партнера (требования защиты на выходе). usernames может иметь значения I (только на входе), O (только на выходе) или B (и те, и другие).

    GENERIC
    Указывает, должна ли DB2 Universal Database for OS/390 использовать свое настоящее или типовое имя LU.
  3. SYSIBM.LUMODES

    Эта таблица задает для VTAM предельное число сеансов LU 6.2 (пределы CNOS) для систем-партнеров, использующих соединения APPC (SNA). Столбцы:

    LUNAME
    Имя LU удаленной системы.

    MODENAME
    Имя режима регистрации VTAM, для которого определяются границы. По умолчанию в столбце MODENAME принимается значение IBMDB2LM.

    CONVLIMIT
    Максимальное число активных диалогов между локальной системой DB2 Universal Database for OS/390 и удаленной системой для этого режима регистрации. Это значение переопределяет параметр DSESLIM в операторе VTAM APPL для данного режима регистрации, где определяются предельное число сеансов VTAM по умолчанию для DB2 Universal Database for OS/390.

    Значение в столбце CONVLIMIT используется CNOS, которая устанавливает для DMINWNR и DMINWNL значение CONVLIMIT/2.

  4. SYSIBM.MODESELECT

    Эта таблица позволяет указать различные имена режимов для отдельных конечных пользователей или прикладных программ DB2 Universal Database for OS/390. Используется только для соединений SNA. Поскольку каждое имя режима VTAM может иметь связанный с ним класс обслуживания (COS), при помощи этой таблицы можно присвоить прикладным программам, работающим с распределенными базами данных, приоритеты сетевой передачи в зависимости от AUTHID, PLANNAME и LUNAME. Столбцы:

    AUTHID
    ID авторизации пользователя DB2 Universal Database for OS/390 (ID пользователя). По умолчанию - пустой ID, означающий, что указанное имя режима применимо ко всем ID.

    PLANNAME
    Имя плана, связанное с прикладной программой, требующей доступ к удаленной базе данных. По умолчанию - пустое имя плана, означающее, что указанное имя режима регистрации применимо ко всем именам планов. Для команды BIND PACKAGE используется имя плана DSNBIND.

    LUNAME
    Имя LU, связанное с удаленной системой баз данных.

    MODENAME
    Имя режима регистрации VTAM, используемое для направления требования распределенной базы данных указанной удаленной системе. По умолчанию - пустое имя, означающее, что для диалогов доступа, управляемого системой, должно использоваться IBMDB2LM, а для диалогов DRDA - IBMRDB.
  5. SYSIBM.USERNAMES

    Эта таблица позволяет управлять именами конечных пользователей путем предоставления паролей, преобразования имен и проверки отправителя. В DB2 Universal Database for OS/390 под именем конечного пользователя понимается ID авторизации. В большинстве других продуктов под этим понимается ID пользователя.

    Эта таблица задает преобразование имен, что позволяет использовать различные значения в качестве ID пользователя в соединениях и ID авторизации пользователя DB2 Universal Database for OS/390. Преобразование имени разрешено для запросов к удаленной системе (уходящих запросов) и для запросов, приходящих от удаленной системы (входящих запросов). Если пароли не шифруются, из этой таблицы берется пароль пользователя в тех случаях, когда удаленной системе посылаются и ID пользователя, и пароль. Столбцы:

    TYPE
    Указывает, как используется строка (описывается ли в этой строке преобразование имен для исходящих требований или для входящих требований/ требований проверки отправителя).

    I означает входящие соединения, O означает исходящие соединения.

    Для соединений TCP/IP используется "O" (преобразование ID на входе и проверка отправителя не выполняются для требований TCP/IP).

    AUTHID
    При преобразовании имен на выходе это ID авторизации DB2 Universal Database for OS/390, который должен быть преобразован. При преобразовании имен на входе это ID пользователя SNA, который должен быть преобразован. В обоих случаях пустое значение AUTHID означает, что правило преобразования применяется ко всем ID авторизации или ID пользователя.

    LINKNAME
    Определяет положения сети VTAM или TCP/IP, связанные с этой строкой. Пустое значение в этом столбце означает, что данное правило преобразования имен применяется ко всем партнерам TCP/IP или SNA.

    Если указано ненулевое LINKNAME, должно быть верно хотя бы одно из следующих двух утверждений:

    • В SYSIBM.LUNAMES существует строка, в которой LUNAME совпадает со значением в столбце LINKNAME в SYSIBM.USERNAMES. В этой строке указывается система, связанная с данным правилом преобразования имен.
    • В SYSIBM.IPNAMES существует строка, в которой LINKNAME совпадает со значением в столбце LINKNAME в SYSIBM.USERNAMES. В этой строке указывается хост TCP/IP, связанный с данным правилом преобразования имен.

      Преобразование имен на входе и проверка отправителя для клиентов TCP/IP не выполняются.

    NEWAUTHID
    Новое имя конечного пользователя (ID пользователя SNA или ID авторизации DB2 Universal Database for OS/390). Пустое значение указывает, что ID не нужно преобразовывать.

    PASSWORD
    Пароль, используемый при открытии диалога, если пароли не шифруются (ENCRYPTPSWDS = 'N' в SYSIBM.LUNAMES). Если пароли шифруются, этот столбец игнорируется.
  6. SYSIBM.IPNAMES

    Эта таблица используется для узлов TCP/IP.

    LINKNAME
    Значение, указанное в этом столбце, должно совпадать со значением в столбце LINKNAME в SYSIBM.LOCATIONS.

    SECURITY_OUT
    В этом столбце определяется опция защиты DRDA, используемая, когда локальные прикладные программы SQL DB2 устанавливают соединения с удаленными серверами, связанными с данным хостом TCP/IP:
    • A означает опцию "already verified" ("уже проверен"). Исходящие требования соединения содержат ID авторизации и не содержат пароля. ID авторизации, используемый для исходящего требования - либо ID авторизации пользователя DB2, либо преобразованный ID, в зависимости от значения в столбце USERNAMES.
    • R означает опцию "RACF PassTicket". Исходящие требования соединения содержат ID пользователя и PassTicket RACF. Значение, указанное в столбце LINKNAME, используется как имя прикладной программы RACF PassTicket для удаленного сервера.

      ID авторизации, используемый для исходящего требования - либо ID авторизации пользователя DB2, либо преобразованный ID, в зависимости от значения в столбце USERNAMES.

    • P означает опцию "password". Исходящие требования соединения содержат ID авторизации и пароль. Пароль берется из таблицы SYSIBM.USERNAMES.

      В столбце USERNAMES должно быть указано "O."

    USERNAMES
    Этот столбец управляет выходным преобразованием ID авторизации. Преобразование на выходе выполняется, когда ID авторизации посылается удаленному серверу.
    • O означает, что исходящий ID надо преобразовать. Для преобразования ID используются строки из таблицы SYSIBM.USERNAMES.

      Для входящих ID преобразование или проверка отправителя не выполняются.

    • Пустое поле означает, что преобразование не производится.

    IPADDR
    Этот столбец содержит адрес IP или имя домена удаленного хоста TCP/IP. Столбец IPADDR должен заполняться следующим образом:
    • Если IPADDR содержит выровненную по левому краю строку символов, содержащую четыре числовых значения, разделенных точками, DB2 воспринимает значение как адрес IP в десятичном формате с точками. Например, '123.456.78.91' будет воспринято как десятичный адрес IP с точками.
    • Любое другое значение интерпретируется как имя домена TCP/IP, которое можно разрешить вызовом socket-функции TCP/IP gethostbyname. Имена доменов TCP/IP регистронезависимы.

Определение связи (SNA)

VTAM используется как Communications Manager для систем OS/390. VTAM принимает команды LU 6.2 от DB2 Universal Database for OS/390 и преобразует эти команды в потоки данных LU 6.2, которые можно передавать по сети. Чтобы VTAM мог взаимодействовать с программами партнера, определенными в CDB DB2 Universal Database for OS/390, необходимо дать VTAM следующую информацию:

Задание размеров RU и синхронизации связи

Записи в таблице режимов VTAM, которые вы заполняете, задают размеры RU и счетчики синхронизации связи. Некорректное задание этих значений может иметь отрицательные последствия для всех прикладных программ VTAM.

После задания размеров RU, предельного числа сеансов и счетчиков синхронизации связи чрезвычайно важно оценить, какое влияние эти значения окажут на существующую сеть VTAM. При установке новой распределенной системы баз данных следует проверить следующие параметры:

Определение связи (TCP/IP)

Применяются те же соображения, что и выше. (смотрите раздел Определение локальной системы (TCP/IP)).

Обеспечение защиты

Когда удаленная система выполняет распределенную обработку баз данных для прикладной программы SQL, она должна удовлетворять требованиям, предъявляемым к защите реквестером и сервером прикладных программ, а также сетью, по которой они устанавливают соединение. Эти требования можно отнести к одной или нескольким из следующих категорий:

Выбор имен конечных пользователей

В системах OS/390 конечным пользователям присваиваются ID пользователя длиной от 1 до 8 символов. Значение ID пользователя должно быть уникальным внутри каждой системы OS/390, но не обязано быть уникальным во всей сети. Например, один пользователь с именем JONES может существовать в системе NEWYORK, а другой пользователь с именем JONES - в системе DALLAS. Если эти два пользователя - одно и то же лицо, никаких конфликтов не возникнет. Однако если JONES в DALLAS и JONES в NEWYORK - разные люди, сеть SNA (а следовательно, и системы распределенных баз данных внутри этой сети) не сможет их различить. Если не исправить эту ситуацию, JONES из DALLAS может пользоваться привилегиями, которые имеет JONES из системы NEWYORK.

Чтобы исключить конфликты имен, DB2 Universal Database for OS/390 поддерживает преобразование имен конечных пользователей. Когда прикладная программа на реквестере прикладных программ DB2 Universal Database for OS/390 посылает требование распределенной базы данных, DB2 Universal Database for OS/390 выполняет преобразование имен, если в базе данных связей указано, что требуется преобразование имен на выходе. Если выбрано преобразование имен на выходе, DB2 Universal Database for OS/390 требует, чтобы в каждом исходящем требовании распределенной базы данных посылался пароль.

Преобразование имен на выходе в DB2 Universal Database for OS/390 включается путем задания в столбце USERNAMES таблицы SYSIBM.LUNAMES или SYSIBM.IPNAMES значения 'O' или 'B'. Если в USERNAMES указано 'O', преобразование имен конечных пользователей выполняется для исходящих требований. Если в USERNAMES указано 'B', преобразование имен конечных пользователей выполняется и для исходящих, и для входящих требований.

Поскольку авторизация в DB2 Universal Database for OS/390 зависит и от ID пользователя конечного пользователя, и от ID пользователя владельца плана или пакета DB2 Universal Database for OS/390, преобразование имен конечного пользователя выполняется для ID пользователя конечного пользователя, ID пользователя владельца плана и ID пользователя владельца пакета. 3 При преобразовании имен в таблице SYSIBM.USERNAMES происходит поиск строки, отвечающей одному из следующих шаблонов (TYPE.AUTHID.LINKNAME), в следующей последовательности:

  1. O.AUTHID.LINKNAME - Правило преобразования для заданного конечного пользователя и заданной системы-партнера.
  2. O.AUTHID.пусто - Правило преобразования для заданного конечного пользователя и любой системы-партнера.
  3. O.пусто.LINKNAME - Правило преобразования для любого конечного пользователя и заданной системы-партнера.

Если подходящая строка не найдена, DB2 Universal Database for OS/390 отвергает требование распределенной базы данных. Если строка найдена, значение в столбце NEWAUTHID используется как ID авторизации. (Пустое значение NEWAUTHID указывает, что исходное имя не преобразуется.)

Рассмотрим пример, который обсуждался ранее. Вы хотите дать JONES из NEWYORK другое имя (NYJONES), когда JONES посылает DALLAS требования распределенной базы данных. Предположим, что программой, которую использует JONES, владеет DSNPLAN (владелец плана DB2 Universal Database for OS/390), и вам не нужно преобразовывать этот ID пользователя, когда он посылается DALLAS. Операторы SQL, требуемые для задания правил преобразовании имен в CDB, показаны на Рис. 19.

Рис. 19. SQL для преобразования имен на выходе (SNA)

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:

Рис. 20. Преобразование имен на выходе

                                                                                  
                                                                                 
 

REQTEXT

На Рис. 21 показан более простой пример соединения SNA с сервером прикладных программ DB2 Universal Database DRDA.

Рис. 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 показан простой пример связи с сервером прикладных программ DB2 Universal Database DRDA через соединение TCP/IP.

Рис. 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 предоставляет три основных функции сетевой защиты:

Поскольку Сервер прикладных программ отвечает за управление ресурсами базы данных, Сервер прикладных программ определяет, какие функции сетевой защиты требуются от реквестера прикладных программ. С учетом требований каждого сервера прикладных программ нужно задать значение для столбца USERNAMES в таблице SYSIBM.LUNAMES или SYSIBM.IPNAMES, чтобы оно отвечало этим требованиям.

Возможны следующие опции защиты диалога SNA:

SECURITY=SAME
Называется также защитой "уже-проверен", поскольку удаленной системе посылается только ID пользователя конечного пользователя (пароль при этом не передается.) Используйте этот уровень защиты диалога, если столбец USERNAMES в таблице SYSIBM.LUNAMES не содержит 'O' или 'B'.

Поскольку DB2 Universal Database for OS/390 связывает преобразование имен конечных пользователей с защитой диалога на выходе, не разрешается указывать SECURITY=SAME, если включено преобразование имен конечных пользователей на выходе.

SECURITY=PGM
При этой опции удаленной системе посылаются ID конечного пользователя и пароль. Используйте эту опцию защиты, если столбец USERNAMES таблицы SYSIBM.LUNAMES содержит 'O' или 'B'.

В зависимости от опций, указанных в таблице SYSIBM.LUNAMES, DB2 Universal Database for OS/390 получает пароль конечного пользователя из двух разных источников:

SECURITY=NONE
Эта опция не поддерживается DRDA, поэтому ее не поддерживает и DB2 Universal Database for OS/390.

Защита менеджера баз данных

Реквестер прикладных программ может участвовать в обеспечении защиты распределенной базы данных посредством преобразования имен на выходе, как говорилось ранее в разделе Выбор имен конечных пользователей. Можно использовать преобразование имен на выходе, чтобы регулировать доступ к каждому серверу прикладных программ в зависимости от конечного пользователя, пославшего требование, и программы, пославшей требование. Реквестер прикладных программ DB2 Universal Database for OS/390 может участвовать в обеспечении защиты распределенной системы также следующими способами:

Связывание удаленных прикладных программ
Конечные пользователи связывают удаленные прикладные программы на сервере прикладных программ при помощи команды DB2 Universal Database for OS/390 BIND PACKAGE. DB2 Universal Database for OS/390 не ограничивает использование команды BIND PACKAGE на реквестере. Однако конечный пользователь не может использовать удаленный пакет, пока он не включен в план DB2 Universal Database for OS/390. DB2 Universal Database for OS/390 ограничивает использование команды BIND PLAN. Конечный пользователь может добавить удаленный пакет к плану, только если ему командой DB2 Universal Database for OS/390 GRANT предоставлена привилегия BIND или BINDADD.

При связывании пакета укажите с помощью опции ENABLE/DISABLE, должен ли пакет использоваться TSO, CICS/ESA, IMS/ESA, или удаленной подсистемой DB2 Universal Database for OS/390.

Выполнение удаленных прикладных программ
Чтобы конечный пользователь DB2 Universal Database for OS/390 мог запустить удаленную прикладную программу, он должен иметь право запускать план DB2 Universal Database for OS/390, связанный с этой прикладной программой. Владелец плана DB2 Universal Database for OS/390 автоматически имеет право запуска плана. Другим конечным пользователям такое право может быть дано командой DB2 Universal Database for OS/390 GRANT EXECUTE. Таким способом владелец прикладной программы распределенной базы данных может регулировать использование программы различными пользователями.

Подсистема защиты

Внешняя подсистема защиты в системах OS/390 обычно обеспечивается RACF или другим продуктом, имеющим совместимый с RACF интерфейс. Реквестер прикладных программ DB2 Universal Database for OS/390 не содержит прямых вызовов внешней подсистемы защиты, за исключением поддержки зашифрованных паролей, описанной в разделе Защита сети. Однако косвенно внешняя подсистема защиты используется в реквестере прикладных программ в следующих ситуациях:

Представление данных

DB2 Universal Database for OS/390 поставляется с установленным по умолчанию идентификатором набора кодовых символов (CCSID) 500. Возможно, такое значение не годится для вашей установки.

При установке DB2 Universal Database for OS/390 нужно установить CCSID, равный CCSID символов, генерируемых и посылаемых DB2 Universal Database for OS/390 входными устройствами вашей системы. Этот CCSID обычно определяется используемым вами национальным языком. Если установлен неправильный CCSID, преобразование символов приведет к неверным результатам. Список CCSID, поддерживаемых для разных стран и национальных языков, смотрите в DB2 Connect. Руководство пользователя.

Необходимо добиться, чтобы подсистема DB2 Universal Database for OS/390 могла выполнять преобразование из CCSID каждого сервера прикладных программ в CCSID, выбранный при установке вашей подсистемы DB2 Universal Database for OS/390. DB2 Universal Database for OS/390 содержит таблицы преобразований для наиболее распространенных комбинаций CCSID источника и назначения, но не для каждой возможной комбинации. Вы можете, если требуется, дополнить набор доступных таблиц преобразования и программ преобразования. Дополнительную информацию о преобразовании символов DB2 Universal Database for OS/390 смотрите в руководстве DB2 Universal Database for OS/390 Administration Guide.


Сноски:

3
Если требование посылается на сервер DB2 Universal Database for OS/390, преобразование имен выполняется также для владельца пакета и владельца плана. С именами владельцев плана и пакета пароли не связываются.


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]