DRDA в сети TCP/IP не используются службы защиты связи OS/400 и такие понятия, как устройства и режимы связи, атрибуты защищенного положения и уровни защиты диалогов, как в связи APPC. Таким образом, установка защиты для TCP/IP довольно сильно отличается от случая APPC.
Текущая реализация DB2/400 поддерживает для DRDA через TCP/IP два типа механизмов защиты:
Для сервера прикладных программ DB2 Universal Database for AS/400 (AS) по умолчанию используется ID пользователя и пароль. Это означает, что когда система установлена, входные требования на соединение TCP/IP должны, кроме ID пользователя, под которым надо запустить серверное задание, содержать еще пароль. Можно воспользоваться командой CHGDDMTCPA, чтобы указать, что пароль не требуется. Чтобы внести это изменение, введите CHGDDMTCPA PWDRQD(*NO). Чтобы пользоваться этой командой. необходимо иметь специальные права доступа *IOSYSCFG.
Для реквестера (то есть клиента) прикладных программ DB2 Universal Database for AS/400 (AR) есть два способа посылки пароля вместе с ID пользователя в требовании связи TCP/IP. Если не указан ни один из них, будет послан только ID пользователя.
Первый способ послать пароль - это использовать форму USER/USING оператора SQL CONNECT. Синтаксис:
CONNECT TO имя_rdb USER id_пользователя USING 'пароль'
где вместо слов в нижнем регистре надо указать соответствующие параметры соединения. В программе, использующей встроенный SQL, значения ID пользователя и пароля могут содержаться в переменных хоста.
Другой способ, которым можно задать пароль для посылки при требовании соединения через TCP/IP - использовать запись авторизации сервера. Каждому профилю пользователя в системе соответствует список авторизации серверов. По умолчанию список пуст, но с помощью команды ADDSVRAUTE в него можно добавлять записи. При попытке соединения DRDA через TCP/IP DB2 Universal Database for AS/400 просматривает список авторизации серверов, соответствующий профилю пользователя, под которым работает задание клиента. Если имя RDB в операторе CONNECT совпадает с именем SERVER в записи авторизации, содержащийся в записи параметр USRID используется в качестве ID пользователя при соединении, и если в записи указан параметр PASSWORD, этот параметр посылается при требовании соединения в качестве пароля.
Чтобы пароль можно было задать с помощью команды ADDSVRAUTE, системное значение QRETSVRSEC должно быть равно '1'. По умолчанию задается значение '0'. Чтобы изменить его, введите:
CHGSYSVAL QRETSVRSEC VALUE('1')
Синтаксис команды ADDSVRAUTE:
ADDSVRAUTE USRPRF(профиль-польз.) SERVER(имя_rdb) USRID(id_польз.) PASSWORD(пароль)
Параметр USRPRF задает профиль пользователя, под которым работает задание реквестера прикладных программ. Параметр SERVER задает имя удаленной RDB, а параметр USRID задает профиль пользователя, под которым будет запущено серверное задание. Параметр PASSWORD задает пароль для профиля пользователя на данном сервере.
Прим.: | Не забудьте, что имя RDB в параметре SERVER должно быть задано в верхнем регистре. |
Если параметр USRPRF опущен, по умолчанию используется профиль пользователя, под которым запущена команда ADDSVRAUTE. Если опущен параметр USRID, по умолчанию используется значение параметра USRPRF. Если опущен параметр PASSWORD или значение QRETSVRSEC равно 0, пароль не будет сохранен в записи авторизации, и при попытке соединения с помощью этой записи выбран механизм защиты, использующий только ID пользователя.
Запись авторизации сервера можно удалить с помощью команды RMVSVRAUTE и изменить с помощью CHGSVRAUTE. Полное описание этих команд смотрите в справочнике "AS/400 Command Reference".
Если для RDB есть запись авторизации сервера, и при этом используется форма USER/USING оператора CONNECT, последняя имеет приоритет.