Поддержка сервера прикладных программ в системе AS/400 позволяет ему действовать в качестве сервера для реквестера прикладных программ DRDA. Реквестер прикладных программ, соединенный с сервером прикладных программ DB2 Universal Database for AS/400, может быть любым клиентом, поддерживающим протоколы DRDA.
Реквестеру прикладных программ разрешен допуск к таблицам, хранящимся локально на сервере прикладных программ DB2 Universal Database for AS/400. Прежде чем выполнять операторы SQL, реквестер прикладных программ должен создать пакет на сервере прикладных программ DB2 Universal Database for AS/400. Сервер прикладных программ DB2 Universal Database for AS/400 использует пакет, содержащий операторы SQL прикладной программы, во время работы программы.
Для обработки требований распределенной базы данных на сервере прикладных программ AS/400 надо дать имя базе данных сервера прикладных программ в каталоге RDB. Для связи SNA нужно определить систему сервера прикладных программ и задать размеры блоков запроса и ответа и синхронизацию. Связь по протоколу TCP/IP, которая поддерживается, начиная с DB2 Universal Database for AS/400 версии 4.2, описана в разделе Соединения DB2 Universal Database for AS/400 в сети DRDA через TCP/IP.
Имя базе данных сервера прикладных программ (на сервере прикладных программ) присваивается так же, как и базе данных реквестера прикладных программ (на реквестере прикладных программ). Используйте команду Добавить запись в каталог реляционных баз данных (Add Relational Database Directory Entry, ADDRDBDIRE) и укажите в качестве удаленного положения *LOCAL.
Для доступа с использованием SNA определение сервера прикладных программ для сети идентично определению реквестера прикладных программ для сети. Чтобы определить и сервер прикладных программ, и реквестер прикладных программ, посылающий требования, нужно создать описания линии связи, контроллера, устройства и режима. Информацию о том, как определять сервер прикладных программ для сети, смотрите в разделах Определение локальной системы для DB2 Universal Database for AS/400 и Определение удаленной системы для DB2 Universal Database for AS/400. Смотрите также руководство AS/400 Distributed Database Programming.
Для запуска базы данных сервера прикладных программ AS/400 по умолчанию используется имя программы транзакций DRDA по умолчанию X'07F6C4C2'. Это имя программы транзакций определено в системе AS/400 для запуска сервера прикладных программ. Для связи TCP/IP, когда этот протокол поддерживается DB2/400, вместо этого параметра задается является порт. DB2/400 всегда будет использовать как сервер общеизвестный порт DRDA 446.
Надо просмотреть сетевые определения, чтобы определить, будет ли сеть распределенных баз данных влиять на существующую сеть. Для сервера прикладных программ и для реквестера прикладных программ применяются одни и те же соображения.
Когда реквестер прикладных программ направляет требование распределенной базы данных серверу прикладных программ AS/400, учитываются следующие вопросы защиты:
Реквестер прикладных программ посылает идентификатор пользователя серверу прикладных программ для обработки защиты. Задание, выполняемое на сервере прикладных программ AS/400, использует этот идентификатор пользователя или, в некоторых случаях, идентификатор пользователя по умолчанию.
Сервер прикладных программ AS/400 не обеспечивает преобразование входящего идентификатора пользователя для разрешения конфликтов между неуникальными идентификаторами пользователя или идентификаторами группы и идентификаторами пользователей. Каждый идентификатор пользователя, посылаемый реквестером прикладных программ, должен существовать на сервере прикладных программ. Для группировки входящих требований в единый идентификатор пользователя, с некоторым снижением уровня защиты, используется задание идентификатора пользователя по умолчанию в записи связи для подсистемы, обрабатывающей требования запуска удаленных заданий. Смотрите описания ADDCMNE и CHGCMNE в справочнике AS/400 CL Reference.
LU 6.2 позволяет использовать три главных механизма сетевой защиты:
Сервер прикладных программ DB2 Universal Database for AS/400 использует защиту на уровне сеанса так же, как реквестер прикладных программ DB2 Universal Database for AS/400.
Сервер прикладных программ управляет уровнями диалогов SNA, используемыми для диалога. Параметр SECURELOC в описании устройства APPC или значение защиты положения в списке удаленных адресов APPN определяет, что именно принимается для диалога от реквестера прикладных программ.
Возможны следующие опции защиты диалога SNA:
SNA/DS ( SNA Distribution Services - службы распределения SNA) требует идентификатор пользователя по умолчанию, поэтому SNA/DS должна иметь собственную подсистему для обычного случая, когда вы не хотите использовать идентификатор пользователя по умолчанию для прикладных программ DRDA.
Метод группировки входящих требований на запуск задания под одним идентификатором пользователя уже упоминался в разделе Выбор имен конечных пользователей. При этом метод идентификатор пользователя, посылаемый с реквестера прикладных программ, не проверяется. Задание сервера прикладных программ запускается под идентификатором пользователя по умолчанию, а пользователь, инициировавший соединение с сервера прикладных программ, имеет доступ к серверу прикладных программ, даже если посланный идентификатор пользователя обладает ограниченными полномочиями. Для этого сервер прикладных программ определяется как незащищенное положение, в записи для связи подсистем AS/400 указывается идентификатор пользователя по умолчанию, а реквестер прикладных программ конфигурируется на посылку идентификатора пользователя только при обработке соединения. Если послан пароль, то посланный с ним идентификатор пользователя используется вместо идентификатора пользователя по умолчанию.
Записи для связи подсистем AS/400 различаются по именам устройств и режимов, используемым для запуска диалога. Назначая разные идентификаторы пользователя разным парам устройство/режим, можно группировать пользователей по тому, как они связываются с сервером прикладных программ.
Система AS/400 предлагает также возможность сетевой защиты, используемую только для управления распределенными базами данных и распределенного управления файлами. Сетевой атрибут для этих типов системного доступа либо отклоняет все попытки доступа, либо передает управление защитой системе на пообъектной основе.
В DB2 Universal Database for AS/400, версия 4.2. введена новая команда CRTDDMTCPA. Это позволяет указывать, будет ли сервер принимать требования на соединение TCP/IP без пароля.
Вся защита выполняется при помощи функции защиты OS/400.
Система AS/400 не имеет внешней подсистемы защиты. Вся защита осуществляется посредством функции защиты OS/400, входящей в операционную систему. Операционная система управляет авторизацией всех объектов системы, включая программы, пакеты, таблицы, производные таблицы и собрания.
Сервер прикладных программ управляет авторизацией для всех объектов, находящихся на сервере прикладных программ. Управление защитой для таких объектов основано на идентификаторе пользователя, который запускает задание сервера прикладных программ. Этот идентификатор пользователя определяется, как описано в разделе Выбор имен конечных пользователей.
Защитой объектов можно управлять с помощью команд CL для полномочий объектов или с помощью операторов SQL GRANT и REVOKE. Команды CL для полномочий объектов - Предоставить полномочия объекта (Grant Object Authority, GRTOBJAUT) и Отозвать полномочия объекта (Revoke Object Authority, RVKOBJAUT). Команды CL используются для всех объектов системы. Операторы GRANT и REVOKE используются только для объектов SQL: таблиц, производных таблиц и пакетов. Если требуется изменить полномочия для других объектов, например, для программ или собраний, используйте команды GRTOBJAUT и RVKOBJAUT.
При создании объектов в системе им даются полномочия по умолчанию. По умолчанию создатель таблицы, производной таблицы или программы получает все полномочия этих объектов. Также по умолчанию все пользователи (public) получают те же полномочия для этих объектов, что они имеют для собрания или библиотеки, в которой создан объект.
Полномочия для объектов, к которым обращаются статические или динамические операторы внутри пакета, проверяются во время выполнения пакета. Если создатель пакета не имеет полномочий для таких объектов, при создании пакета выдаются предупреждающие сообщения. Во время выполнения пакета пользователь, выполняющий пакет, берет полномочия создателя пакета. Если создатель пакета имеет полномочия для работы с таблицей, а пользователь, запустивший пакет, не имеет их, пользователь берет полномочия создателя пакета и получает разрешение использовать таблицу.
Дополнительную информацию о системной защите смотрите в справочнике AS/400 Security - Reference.
Поддерживающие DRDA программы автоматически выполняют все необходимые преобразования на сервере прикладных программ. Для этого значение CCSID сервера прикладных программ должно поддерживаться утилитой преобразования реквестера прикладных программ.
На сервере прикладных программ надо учитывать CCSID для следующих объектов:
Набор CCSID вашего служебного задания должен быть совместим с реквестером прикладных программ. Этот набор CCSID устанавливается пользовательским профилем идентификатора пользователя, требующего соединения. Поддержка управления работой OS/400 инициализирует CCSID задания для CCSID в профиле пользователя. Если CCSID в профиле пользователя не существует, поддержка управления работой получает CCSID (QCCSID) из системного значения. Системное значение QCCSID изначально равно 65535.
Перед тем как передавать требование к DB2 Universal Database for AS/400, надо зарегистрироваться и при помощи команды Изменить профиль пользователя (Change User Profile, CHGUSRPRF) назначить приемлемое значение CCSID профиля пользователя для задания, которое будет обслуживать требования DRDA.
Собрание SQL состоит из библиотечного объекта OS/400, системного журнала, получателя системного журнала и (не обязательно) словаря данных IDDU, если в операторе CREATE COLLECTION указано условие WITH DATA DICTIONARY. Физические и логические файлы, используемые для ряда этих объектов, по умолчанию получают CCSID задания во время их создания. Если вы запрашиваете словарь данных или каталог из реквестера прикладных программ, не поддерживающего значение CCSID этих файлов, вы можете получить неотображаемые или искаженные данные. Реквестер прикладных программ может также выдать сообщение о том, что данное значение CCSID не поддерживается. Для исправления этого нужно создать новое собрание SQL со значением CCSID задания, приемлемым для другой системы.
CCSID задания можно изменить с помощью команды Изменить задание (Change Job, CHGJOB). Чтобы изменить значение для нескольких последовательных заданий, измените значение CCSID профиля пользователя командой Изменить профиль пользователя (Change User Profile, CHGUSRPRF). Чтобы посмотреть CCSID текущего задания в программе CL, воспользуйтесь командой Получить атрибуты задания (Retrieve Job Attributes, RTVJOBA). В интерактивном режиме введите команду Работа с заданием (Work with Job, WRKJOB) и в окне Work with Job выберите опцию 2 Display Job Definition Attributes (Показать атрибуты определения задания)
Таблица SQL соответствует физическому файлу DB2 Universal Database for AS/400 в библиотеке с тем же именем, что и ваше собрание. Столбцы таблицы при этом соответствуют полям физического файла. Значения CCSID для таблицы или столбцов таблицы могут быть несовместимы с реквестером прикладных программ. Как изменить это значение, описано в разделе Представление данных, где описана процедура изменения физических файлов базы данных. В версиях OS/400 до Версии 3 Выпуска 1 несовместимость часто возникала из-за того, что для многих файлов или таблиц SQL по умолчанию использовалось значение CCSID 65535. В Версии 3 Выпуск 1 и в последующих выпусках значение CCSID этих файлов автоматически изменяется на другое, более приемлемое.