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, необходимо следующее:
При работе в среде распределенной базы данных постоянно требуется обмен сообщениями с другими узлами сети. Чтобы обеспечить корректную работу, нужно выполнить следующие действия:
Смотрите раздел Определение локальной системы (SNA) или Определение локальной системы (TCP/IP).
Каждой программе в сети 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 следующим образом:
DB2 Universal Database for OS/390 читает BSDS при пуске, чтобы получить параметры установки системы. Одна из хранящихся в BSDS записей называется записью DDF, потому что в ней содержится информация, используемая DDF для соединения с VTAM. В эту информацию входит:
Информацию BSDS DDF можно предоставить DB2 Universal Database for OS/390 двумя способами:
Рис. 15. DB2 Universal Database for 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 //* //* ИЗМЕНЕНИЕ ПАРАМЕТРОВ ЖУРНАЛА //* В BSDS ЗАНОСИТСЯ //* - DB2 LOCATION NAME FOR NEW_YORK3 //* - VTAM LUNAME (NYM2DB2) //* - ПАРОЛЬ DB2/VTAM //* //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 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 не нужен.
После того как имя 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 ключевые слова означают следующее:
Вам не надо автоматически запускать все сеансы APPC между всеми парами партнеров распределенных баз данных. Если значение AUTOSES меньше, чем предельное число победителей конфликтов (DMINWNL), VTAM откладывает запуск всех остальных сеансов SNA до тех пор, пока они не будут востребованы прикладной программой распределенной базы данных.
Если партнер не поддерживает число сеансов, указанное в параметрах DSESLIM, DMINWNL или DMINWNR, процесс CNOS согласует новые значения, приемлемые для партнера.
Лучше всегда задавать SECACPT=ALREADYV, потому что уровень защиты диалога SNA для каждого партнера DB2 Universal Database for OS/390 определяется из CDB DB2 Universal Database for OS/390 (столбец USERSECURITY в таблице SYSIBM.LUNAMES). SECACPT=ALREADYV дает максимальную гибкость в выборе значений для USERSECURITY.
DB2 Universal Database for OS/390 не ограничивает выбор значений для ключевого слова VERIFY. В непроверенной сети рекомендуется использовать VERIFY=REQUIRED. VERIFY=REQUIRED вынуждает VTAM отвергать партнеров, которые не могут выполнить верификацию LU партнера. Если выбрано VERIFY=OPTIONAL, VTAM выполняет верификацию LU партнера только для тех партнеров, которые предоставляют поддержку для такой верификации.
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.
Для удобства в этом разделе помещена сводка информации из руководства 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, необходимо следующее:
Рис. 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 состоит из следующих таблиц:
Эта таблица позволяет DB2 Universal Database for OS/390 получить информацию об адресах SNA или TCP/IP, которая требуется при обращении к каждому из RDB_NAME, определенных прикладной программой DB2 Universal Database for OS/390 для исходящих требований. Столбцы:
Если для удаленной системы требуется значение TPN, отличное от принятого по умолчанию, нужно указать здесь это значение.
В этой таблице определяются сетевые атрибуты удаленных систем, с которыми устанавливаются соединения SNA. Столбцы:
Если столбец USERNAMES содержит 'I' или 'B', для проверки входящих требований соединения, содержащих только ID пользователя, RACF не вызывается.
ID авторизации, используемый для исходящего требования - либо ID авторизации пользователя DB2, либо преобразованный ID, в зависимости от значения в столбце USERNAMES.
В столбце USERNAMES должно быть указано 'B' или 'O'.
Если MODESELECT содержит не 'Y', для требований доступа, управляемого системой, используется имя режима IBMDB2LM, а для требований DRDA - имя режима IBMRDB.
Столбец MODESELECT позволяет задать приоритеты для требований распределенной базы данных, указав класс обслуживания VTAM (COS), связанный с именем режима.
Эта таблица задает для VTAM предельное число сеансов LU 6.2 (пределы CNOS) для систем-партнеров, использующих соединения APPC (SNA). Столбцы:
Значение в столбце CONVLIMIT используется CNOS, которая устанавливает для DMINWNR и DMINWNL значение CONVLIMIT/2.
Эта таблица позволяет указать различные имена режимов для отдельных конечных пользователей или прикладных программ DB2 Universal Database for OS/390. Используется только для соединений SNA. Поскольку каждое имя режима VTAM может иметь связанный с ним класс обслуживания (COS), при помощи этой таблицы можно присвоить прикладным программам, работающим с распределенными базами данных, приоритеты сетевой передачи в зависимости от AUTHID, PLANNAME и LUNAME. Столбцы:
Эта таблица позволяет управлять именами конечных пользователей путем предоставления паролей, преобразования имен и проверки отправителя. В DB2 Universal Database for OS/390 под именем конечного пользователя понимается ID авторизации. В большинстве других продуктов под этим понимается ID пользователя.
Эта таблица задает преобразование имен, что позволяет использовать различные значения в качестве ID пользователя в соединениях и ID авторизации пользователя DB2 Universal Database for OS/390. Преобразование имени разрешено для запросов к удаленной системе (уходящих запросов) и для запросов, приходящих от удаленной системы (входящих запросов). Если пароли не шифруются, из этой таблицы берется пароль пользователя в тех случаях, когда удаленной системе посылаются и ID пользователя, и пароль. Столбцы:
I означает входящие соединения, O означает исходящие соединения.
Для соединений TCP/IP используется "O" (преобразование ID на входе и проверка отправителя не выполняются для требований TCP/IP).
Если указано ненулевое LINKNAME, должно быть верно хотя бы одно из следующих двух утверждений:
Преобразование имен на входе и проверка отправителя для клиентов TCP/IP не выполняются.
Эта таблица используется для узлов TCP/IP.
ID авторизации, используемый для исходящего требования - либо ID авторизации пользователя DB2, либо преобразованный ID, в зависимости от значения в столбце USERNAMES.
В столбце USERNAMES должно быть указано "O."
Для входящих ID преобразование или проверка отправителя не выполняются.
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 следующую информацию:
Когда DB2 Universal Database for OS/390 взаимодействует с VTAM, для определения нужного назначения разрешается передавать VTAM только имя LU (а не NETID.LUNAME). Это имя LU должно быть уникальным среди имен LU, известных локальной системе VTAM, что позволяет VTAM определить и NETID, и имя LU по значению имени LU, переданному DB2 Universal Database for OS/390. Если имена LU уникальны для всей сети SNA предприятия, это сильно упрощает процесс определения ресурсов VTAM. Однако это не всегда возможно. Если имена LU внутри ваших сетей SNA не уникальны, нужно использовать преобразование имен LU VTAM, чтобы построить корректную комбинацию NETID.LUNAME для неуникального имени LU. Этот процесс описан в разделе "Resource Name Translation" в руководстве VTAM Network Implementation Guide.
Размещение и синтаксис определений VTAM, используемых для задания имен удаленных LU, сильно зависят от того, как удаленная система логически и физически связана с локальной системой VTAM.
Записи в таблице режимов VTAM, которые вы заполняете, задают размеры RU и счетчики синхронизации связи. Некорректное задание этих значений может иметь отрицательные последствия для всех прикладных программ VTAM.
После задания размеров RU, предельного числа сеансов и счетчиков синхронизации связи чрезвычайно важно оценить, какое влияние эти значения окажут на существующую сеть VTAM. При установке новой распределенной системы баз данных следует проверить следующие параметры:
Если вы задаете параметр MAXBFRU для NCP, введите значение, рассчитанное на размер RU плюс 29 байт. Для NCP параметр MAXBFRU задает число буферов ввода-вывода VTAM, которые могут быть использованы для хранения PIU. Если выбран размер буфера IOBUF 441, при MAXBFRU=10 RU размером 4 Кбайта будут обрабатываться корректно, потому что 10*441 больше, чем 4096+29.
Применяются те же соображения, что и выше. (смотрите раздел Определение локальной системы (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), в следующей последовательности:
Если подходящая строка не найдена, 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. Преобразование имен на выходе
На Рис. 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:
Поскольку DB2 Universal Database for OS/390 связывает преобразование имен конечных пользователей с защитой диалога на выходе, не разрешается указывать SECURITY=SAME, если включено преобразование имен конечных пользователей на выходе.
В зависимости от опций, указанных в таблице SYSIBM.LUNAMES, DB2 Universal Database for OS/390 получает пароль конечного пользователя из двух разных источников:
На Рис. 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 Universal Database for OS/390 производит поиск в таблице SYSIBM.USERNAMES, чтобы определить ID пользователя (значение NEWAUTHID) для передачи удаленной системе. Это преобразованное имя используется для получения пароля от RACF. Если вы не хотите преобразовывать имена, вы должны добавить в таблицу SYSIBM.USERNAMES строки, которые позволяют посылать имена без преобразования. На Рис. 24 показана отправка требований LUDALLAS и LUNYC без преобразования имен конечных пользователей (ID пользователя).
Рис. 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', ' ', ' '); |
Реквестер прикладных программ может участвовать в обеспечении защиты распределенной базы данных посредством преобразования имен на выходе, как говорилось ранее в разделе Выбор имен конечных пользователей. Можно использовать преобразование имен на выходе, чтобы регулировать доступ к каждому серверу прикладных программ в зависимости от конечного пользователя, пославшего требование, и программы, пославшей требование. Реквестер прикладных программ DB2 Universal Database for OS/390 может участвовать в обеспечении защиты распределенной системы также следующими способами:
При связывании пакета укажите с помощью опции ENABLE/DISABLE, должен ли пакет использоваться TSO, CICS/ESA, IMS/ESA, или удаленной подсистемой DB2 Universal Database for OS/390.
Внешняя подсистема защиты в системах 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.