У меня есть приложение ASP.NET, работающее в Windows 2003, которое должно взаимодействовать с базой данных DB2, которая находится на мэйнфрейме. Мы установили драйвер клиента DB2 v9.5 на наш сервер, чтобы приложение могло устанавливать соединение и работать с базой данных. Строка подключения для подключения к базе данных содержит имя пользователя и пароль, это не доверенное соединение.
Чтобы было ясно, мы используем поставщика DB2 .NET, а не OLE DB, ODBC и т. Д.
Мы замечаем, что когда приложение ASP.NET пытается установить первое соединение с DB2, это занимает очень много времени, примерно 20 секунд. После разговора с одним из наших постоянных администраторов баз данных они сказали, что это может быть связано с тем, что драйвер DB2 пытается аутентифицировать учетную запись пользователя, которая используется для подключения к базе данных, в Active Directory.
Их решение состояло в том, чтобы создать локальную учетную запись пользователя на сервере Win2003 с тем же именем, что и учетная запись пользователя, которая используется для установления соединения. Учетная запись локального пользователя не обязательно должна быть членом каких-либо групп acl, и ее можно отключить.
Я попробовал это решение, и, к моему удивлению, оно действительно сработало. Подключение было установлено за миллисекунды. Что меня беспокоит, так это то, что эта «функция» кажется недостатком в драйвере DB2, и любые новые версии этого драйвера могут фактически помешать этому снова работать.
Кто-нибудь знает, есть ли в драйвере DB2 действительный параметр, который мы могли бы установить, чтобы он не пытался аутентифицироваться в Active Directory? Мне было бы удобнее использовать этот параметр, чем полагаться на то, что мне кажется недостатком в их алгоритме аутентификации.
Спасибо
В настройке конфигурации клиента db2 есть несколько вариантов аутентификации. Описание опций сбивает с толку. По умолчанию используется "использовать аутентификацию, определенную в конфигурации dbm сервера". На клиенте "серверная конфигурация dbm" действительно означает локальную машину. Если ваш локальный компьютер - это Microsoft Windows, соединение будет пытаться аутентифицировать идентификатор, используя метод аутентификации по умолчанию. Если по умолчанию активный каталог, работа может замедлиться. Как только он получит ответ от Windows (хороший или плохой), он все равно попытается подключиться к db2, используя id / passwd. Вот почему ваш администратор баз данных сказал каталогизировать соединение с использованием «аутентификации сервера». В миксе тоже есть ошибка. Если вы используете odbc, он может все равно попытаться перейти к контроллерам домена и исправить, что потребуется локальный идентификатор.
Наш администратор баз данных только что нашел подходящее решение, и оно работает без добавления этого локального пользователя.
В основном это связано с тем, что когда вы каталогизируете соединение на сервере приложений DB2, вы должны указать что-то вроде «Сервер аутентификации». Это предотвращает аутентификацию драйвера DB2 в Active Directory.
Я знаю, что ответ расплывчат, но это все, что я мог от него получить.