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

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

Поддержка сервера прикладных программ DB2 for MVS/ESA позволяет DB2 for MVS/ESA действовать как сервер для реквестеров прикладных программ DRDA. Реквестером прикладных программ для сервера прикладных программ DB2 for MVS/ESA может быть:

Сервер прикладных программ DB2 for MVS/ESA поддерживает доступ к базам данных для реквестеров прикладных программ следующим образом:

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

Чтобы Сервер прикладных программ DB2 for MVS/ESA правильно обрабатывал требования распределенной базы данных, необходимо выполнить следующие действия:

  1. Определить сервер прикладных программ для локального Communications Manager.
  2. Определить назначение каждого потенциального вторичного сервера, чтобы сервер прикладных программ DB2 for MVS/ESA мог направлять требования SQL к их конечным назначениям.
  3. Обеспечить необходимую защиту.
  4. Обеспечить правильное представление данных.

Определение сервера прикладных программ

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

  1. Выбрать имя LU и RDB_NAME, которые будет использовать Сервер прикладных программ DB2 for MVS/ESA. Для занесения этих имен в DB2 for MVS/ESA и VTAM используется та же процедура, что описана в разделе Определение локальной системы. Выбранное для DB2 for MVS/ESA RDB_NAME надо сообщить всем конечным пользователям и реквестерам прикладных программ, которые будут соединяться с сервером.
  2. Зарегистрировать значение NETID.LUNAME для сервера прикладных программ DB2 for MVS/ESA на каждом реквестере прикладных программ, которому требуется доступ, чтобы он мог направлять требования SNA на сервер DB2 for MVS/ESA. Это относится и к случаю, когда Реквестер прикладных программ способен выполнять динамическую сетевую маршрутизацию, поскольку для такой маршрутизации ему должно быть известно NETID.LUNAME.
  3. Задать для каждого реквестера прикладных программ TPN, принятое по умолчанию в DRDA (X'07F6C4C2'), поскольку DB2 for MVS/ESA автоматически использует это значение.
  4. Создать для каждого имени режима, которое может быть затребовано реквестером прикладных программ, запись в таблице режимов. В этих записях описываются размеры RU, размер окна синхронизации и класс обслуживания для каждого имени режима.
  5. Задать предельное число сеансов для реквестеров прикладных программ, устанавливающих соединения с сервером прикладных программ DB2 for MVS/ESA. Предельное число сеансов по умолчанию для всех систем-партнеров устанавливает оператор VTAM APPL. Если вы хотите задать умолчания для определенного партнера, можно использовать таблицу SYSIBM.SYSLUMODES базы данных связей (CDB).

    Перенастройка сети VTAM описана в разделе Задание размеров RU и синхронизации связи.

  6. Создайте записи в CDB DB2 for MVS/ESA, чтобы указать, каким реквестерам прикладных программ разрешается устанавливать соединения с сервером прикладных программ DB2 for MVS/ESA. Используются два основных подхода к включению в CDB записей для реквестеров прикладных программ в сети:
    1. Можно вставить в SYSIBM.SYSLUNAMES строку, задающую значения по умолчанию для любого LU, которое не описано в CDB особо (в этой строке в столбце LUNAME содержатся пробелы). При таком подходе вы можете задать особые значения для некоторых LU в сети, задав для остальных LU значения по умолчанию.

      Например, вы можете разрешить системе DALLAS (другая система DB2 for MVS/ESA) посылать "уже-проверенные" требования распределенной базы данных (LU 6.2 SECURITY=SAME), в то же время потребовав, чтобы системы менеджера баз данных посылали пароль. Далее, вам, возможно, не захочется включать в CDB записи для каждой системы менеджера баз данных, особенно, если таких систем много. На Рис. 10 показано, как указать в CDB SECURITY=SAME для системы DALLAS и SECURITY=PGM для всех остальных реквестеров.

      Рис. 10. Задание значений по умолчанию для соединений реквестера прикладных программ

      INSERT INTO SYSIBM.SYSLUNAMES
           (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES)
        VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', ' ');
      INSERT INTO SYSIBM.SYSLUNAMES
           (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES)
        VALUES (' ', ' ', 'C', 'N', 'N', ' ');
      

    2. Права доступа для каждого реквестера прикладных программ в сети можете задать в CDB одним из следующих способов:
      • Не задавайте строку по умолчанию в SYSIBM.SYSLUNAMES. Если строка по умолчанию (содержащая пустое имя LU) отсутствует, DB2 for MVS/ESA требует, чтобы в SYSIBM.SYSLUNAMES была строка, содержащая имя LU для каждого реквестера прикладных программ, который будет устанавливать соединение. Если такая строка в CDB не найдена, Реквестер прикладных программ не получит доступа к системе.
      • Задайте в SYSIBM.SYSLUNAMES строку по умолчанию и укажите, что требуется проверка отправителя (в столбце USERNAMES - 'I' или 'B'). Это вынудит DB2 for MVS/ESA ограничить доступ для реквестеров прикладных программ и конечных пользователей, указанных в таблице SYSIBM.SYSUSERNAMES, как описано в разделе Проверка отправителя. Такой подход можно использовать, если ваши правила преобразования имен требуют наличия в SYSIBM.SYSLUNAMES строки с пустым именем LU, но вы не хотите, чтобы DB2 for MVS/ESA предоставляла неограниченный доступ ко всем серверам прикладных программ DB2 for MVS/ESA.

      На Рис. 11 нет строки, содержащей пробелы в столбце LUNAME, поэтому DB2 for MVS/ESA отклоняет требования доступа для всех LU, кроме LUDALLAS и LUNYC.

      Рис. 11. Индивидуальное задание соединений реквестеров прикладных программ

      INSERT INTO SYSIBM.SYSLUNAMES
           (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES)
        VALUES ('LUDALLAS', ' ', 'A', 'N', 'N', ' ');
      INSERT INTO SYSIBM.SYSLUNAMES
           (LUNAME, SYSMODENAME, USERSECURITY, ENCRYPTPSWDS, MODESELECT, USERNAMES)
        VALUES ('LUNYC', ' ', 'A', 'N', 'N', ' ');
      

Определение вторичных серверов

DB2 for MVS/ESA не реализует сервер баз данных, как определено в DRDA. Вместо этого DB2 for MVS/ESA предоставляет вторичные серверы, которые обеспечивают доступ к нескольким системам DB2 for MVS/ESA в одной единице работы при помощи доступа, управляемого системой.

Различия SQL

Язык SQL, который поддерживается при доступе, управляемом системой, значительно отличается от удаленной единицы работы DRDA:

Имена объектов SQL

Когда сервер прикладных программ DB2 for MVS/ESA получает требование SQL, он изучает имя объекта SQL для поиска этого объекта в сети. DB2 for MVS/ESA принимает либо одно-, либо двух-, либо трехчастные имена объектов SQL, где имя имеет одну из следующих форм:

имя_объекта задает имя DB2 for MVS/ESA таблицы, производной таблицы, синонима или алиаса.

id_авторизации.имя_объекта задает владельца объекта и имя объекта.

положение.id_авторизации.имя_объекта задает систему, в которой расположен объект, владельца объекта и имя объекта.

Если имя положения (первая часть трехчастного имени объекта) совпадает с RDB_NAME локальной системы DB2 for MVS/ESA, запрос идентифицирует локальный объект DB2 for MVS/ESA.

Если имя положения не совпадает с RDB_NAME локальной системы DB2 for MVS/ESA, сервер прикладных программ DB2 for MVS/ESA направляет запрос в систему, идентифицируемую именем положения, с использованием доступа, управляемого системой. Система назначения должна быть другой системой DB2 for MVS/ESA, поскольку такой доступ поддерживается только между системами DB2 for MVS/ESA. Доступ, управляемый системой, не поддерживает функций удаленного связывания, поэтому перед выполнением прикладной программы нет необходимости связывать ее на сервере. На Рис. 12 показана схема процесса разрешения имен объектов SQL в DB2 for MVS/ESA.

Рис. 12. Разрешение имен объектов SQL DB2 for MVS/ESA

                                                                                  
                                                                                 
 

REQTEXT

Определение сервера

Если сервер прикладных программ DB2 for MVS/ESA собирается переадресовывать удаленные запросы SQL, в CDB и VTAM необходимо определить каждый из вторичных серверов. Большая часть этого процесса определения аналогична процессу, описанному в Определение удаленных систем. Для соединения со вторичными серверами необходимо следующее:

  1. Запишите в CDB и VTAM значения RDB_NAME и имени LU для каждого из серверов. Значение TPN при доступе, управляемом системой, отличается от используемого по умолчанию значения DRDA. Однако эта разница не имеет особого значения, поскольку DB2 for MVS/ESA автоматически выбирает правильное значение.
  2. Определите в SYSIBM.SYSLUNAMES требования к защите для каждого из вторичных серверов. Этот процесс описан в разделе Обеспечение защиты.
  3. Определите имена режимов, используемых между сервером прикладных программ DB2 for MVS/ESA и вторичными серверами, и занесите эти имена в таблицу режимов VTAM. По умолчанию используется имя IBMDB2LM.
  4. Определите предельное число сеансов для каждого из вторичных серверов. Для этого используется тот же процесс, что и описанный в разделе Определение локальной системы. Однако системный доступ может устанавливать несколько диалогов для каждой из прикладных программ SQL. Для соединений доступа, управляемого системой, может потребоваться установить большее значение предельного числа сеансов, чем устанавливается для соединений DRDA. Конкретные подробности расчета числа сеансов LU 6.2, необходимых для прикладных программ доступа, управляемого системой, смотрите в разделе "Connecting Distributed Database Systems" руководства DB2 Administration Guide.

В качестве владельца ресурсов базы данных вторичный сервер управляет защитой базы данных для расположенных на этом сервере объектов SQL. Однако он разделяет эту ответственность с сервером прикладных программ DB2 for MVS/ESA, который посылает требование. Этот сервер управляет доступом к объектам SQL так:

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

Когда реквестер прикладных программ направляет требования распределенной базы данных серверу прикладных программ DB2 for MVS/ESA, возникают следующие вопросы, связанные с защитой:

Проверка отправителя

Сервер прикладных программ DB2 for MVS/ESA при приеме от реквестера имен конечных пользователей может ограничивать набор имен, принимаемых от данного реквестера. Это достигается при помощи проверки отправителя. Проверка отправителя позволяет серверу прикладных программ указать, что данный ID пользователя может использоваться только определенными партнерами. Например, для пользователя JONES сервер прикладных программ может принимать только требования, "приходящие от" реквестера DALLAS. Если другой реквестер прикладных программ (отличный от DALLAS) пытается послать серверу прикладных программ имя JONES, этот сервер прикладных программ может отвергнуть запрос, поскольку положение в сети, откуда пришло это имя, не задано как допустимое.

DB2 for MVS/ESA реализует проверку отправителя как часть преобразования имен конечных пользователей на входе, что описывается в следующем разделе.

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

ID пользователя, передаваемый реквестером прикладных программ, может не быть уникальным для всей сети SNA. Серверу прикладных программ DB2 for MVS/ESA может понадобиться выполнять преобразование имен на входе, чтобы создать уникальные для всей сети SNA имена конечных пользователей. Серверу прикладных программ DB2 for MVS/ESA может также понадобиться выполнять преобразование имен на выходе, чтобы передать вторичным серверам, связанным с прикладной программой, уникальное имя конечного пользователя (смотрите в разделе Обеспечение защиты сведения о преобразовании имен конечных пользователей на выходе).

Преобразование имен на входе включается путем установки в столбце USERNAMES таблицы SYSIBM.SYSLUNAMES значения 'I' (преобразование на входе) или 'B' (преобразование на входе и на выходе). Когда включено преобразование имен на входе, DB2 for MVS/ESA преобразует ID пользователя, посылаемый реквестером прикладных программ, и имя владельца плана DB2 for MVS/ESA (если Реквестер прикладных программ - другая система DB2 for MVS/ESA).

Если Реквестер прикладных программ посылает и ID пользователя, и пароль командой APPC ALLOCATE, ID пользователя и пароль проверяются перед преобразованием ID пользователя. Столбец PASSWORD из SYSIBM.SYSUSERNAMES для проверки пароля не используется. Вместо этого ID пользователя и пароль передаются для проверки внешней системе защиты (RACF или эквивалентному продукту).

Когда проверяется входящий ID пользователя, посланный командой ALLOCATE, DB2 for MVS/ESA позволяет использовать обработчики авторизации, при помощи которых можно задать список вторичных AUTHID и выполнить дополнительные проверки защиты. Подробности смотрите в руководстве DB2 Administration Guide.

При преобразовании имен на входе происходит поиск в таблице SYSIBM.SYSUSERNAMES строки, которая должна отвечать одному из шаблонов, показанных ниже (в том порядке, в котором происходит поиск) (TYPE.AUTHID.LUNAME):

  1. I.AUTHID.LUNAME - Конкретный конечный пользователь и конкретный реквестер прикладных программ
  2. I.AUTHID.пусто - Конкретный конечный пользователь и любой реквестер прикладных программ
  3. I.пусто.LUNAME - Любой конечный пользователь и конкретный реквестер прикладных программ

Если ни одной строки не найдено, удаленный доступ не предоставляется. Если найдена строка, предоставляется удаленный доступ и имя конечного пользователя заменяется на значение, указанное в столбце NEWAUTHID; при пустом значении NEWAUTHID имя не меняется. При всех проверках авторизации ресурсов DB2 for MVS/ESA, (например, привилегий таблицы SQL), выполняемых DB2 for MVS/ESA, используются преобразованные, а не исходные имена конечных пользователей.

Когда сервер прикладных программ DB2 for MVS/ESA получает имя пользователя от реквестера прикладных программ, преобразование имен на входе позволяет достичь нескольких целей:

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

LU 6.2 позволяет использовать три главных механизма сетевой защиты:

В разделе Защита сети описано, как задать защиту уровня сеанса и шифрование для DB2 for MVS/ESA. Сервер прикладных программ DB2 for MVS/ESA использует защиту на уровне сеанса и шифрование точно так же, как Реквестер прикладных программ DB2 for MVS/ESA.

Остается только рассмотреть защиту уровня диалога в сетях SNA. Некоторые особенности защиты уровня диалога характерны только для сервера прикладных программ DB2 for MVS/ESA. Сервер прикладных программ DB2 for MVS/ESA играет две разных роли в сетевой защите:

Если обнаружено нарушение защиты, LU 6.2 требует, чтобы Сервер прикладных программ DB2 Universal Database for OS/390 возвратил реквестеру прикладных программ код ошибки защиты SNA ('080F6051'X). Поскольку этот код ничего не говорит о причине неудачи, DB2 for MVS/ESA предоставляет два способа определения причины нарушения защиты распределенной базы данных:

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

В качестве владельца ресурсов базы данных Сервер прикладных программ DB2 for MVS/ESA управляет функциями защиты баз данных для объектов SQL, расположенных на этом сервере. Доступ к объектам, управляемым DB2 for MVS/ESA, регулируется привилегиями, которые предоставляют пользователям администратор DB2 for MVS/ESA или владельцы отдельных объектов. Сервер прикладных программ DB2 for MVS/ESA управляет двумя основными классами объектов:

Когда создается пакет, с помощью опции DISABLE/ENABLE можно регулировать типы соединений, для которых можно запускать пакет. Чтобы выборочно разрешить конечным пользователям использовать DDF, можно использовать RACF и обработчики защиты DB2 for MVS/ESA. RLF можно использовать для задания ограничений на процессорное время для удаленных связываний и выполнений динамического SQL.

Рассмотрим пакет DB2 for MVS/ESA под названием MYPKG, которым владеет JOE. JOE может разрешить SAL выполнять пакет при помощи оператора DB2 for MVS/ESA GRANT USE. Когда SAL выполняет пакет, происходит следующее:

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

Использование сервером прикладных программ DB2 for MVS/ESA подсистемы защиты (RACF или эквивалентного ему продукта) зависит от того, как определена функция преобразования имен на входе в таблице SYSIBM.SYSLUNAMES:

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

Необходимо, чтобы подсистема DB2 for MVS/ESA могла выполнять преобразование из CCSID каждого реквестера прикладных программ в CCSID, выбранный при установке подсистемы DB2 for MVS/ESA. Дополнительную информацию смотрите в разделе Представление данных.


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