#jdbc #db2 #windows-authentication #integrated-security
#jdbc #db2 #windows-проверка подлинности #интегрированная-безопасность
Вопрос:
Ищу пример использования JDBC в базе данных DB2 с использованием проверки подлинности Windows, предпочтительно с db2jcc4.jar водитель. Кажется, это достаточно распространенный сценарий, но мне трудно найти пример.
Комментарии:
1. Неясный вопрос. Ваш Db2-сервер также работает в MS-Windows? Или ваш Db2-сервер работает в Linux, но настроен на использование аутентификации через Active Directory? Образцы IBM jdbc для Db2 находятся в трех местах, поэтому посмотрите внимательнее, они находятся в (1) каталоге Db2 server SAMPLES/ jdbc, (2) в сетевой документации Db2-Knowledge-Centre и (3) на Github.
2. Для пояснения, сервер DB2 работает под управлением Windows. Я видел образцы JDBC. Большинство из них, похоже, используют один и тот же класс утилиты для подключения: ibm.com/support/knowledgecenter/SSEPGG_11.1.0 /. … Итак, несколько вопросов: 1. Какой конкретный драйвер мне нужно использовать, если я хочу выполнить аутентификацию Windows (т.Е. аутентифицироваться с использованием учетной записи, под которой работает мой клиент, а не явно передавать имя пользователя / пароль), 2. Требуется ли DLL в дополнение к самому драйверу? 3. Как выглядят URL-адрес и свойства для установления этого соединения?
3. Представьте, что я задал тот же вопрос, но о MS-SQL вместо DB2, был бы длинный список ответов. Так что на самом деле я ищу эквивалентный ответ DB2.
Ответ №1:
Ваш первоначальный вопрос был слишком расплывчатым, пока вы не прояснили его комментарием, спрашивающим, как подключиться к локальным базам данных Db2 через jdbc без идентификатора пользователя / пароля. Итак, ваш реальный вопрос, похоже, звучит так: «Как мне добиться аутентификации без пароля для локальных баз данных Db2 в MS-Windows?», Что может быть часто задаваемым вопросом.
Db2-server делегирует проверку подлинности базовым службам операционной системы, на которых запущен Db2-server. Имейте в виду, что Db2-server работает на нескольких совершенно разных операционных системах, только одна из которых — MS-Windows.
Да, вы можете подключиться через -JDBC к локальной базе данных Db2 в MS-Windows без указания идентификатора пользователя / пароля, используя поставляемый IBM драйвер jdbc.
Вы также можете подключиться к локальной базе данных Db2 в MS-Windows через CLI / ODBC и командную строку без указания идентификатора пользователя / пароля. Если идентификатор пользователя / пароль не указаны, то идентификатор аутентификации соответствует текущему сеансу (либо идентификатору входа в систему, либо runas
идентификатору).
Если у вас есть локальный Db2-сервер с локальной базой данных, работающий в MS-Windows, то все необходимое программное обеспечение уже установлено (если используется по умолчанию) для достижения вышеуказанного.
Важно понимать, что если Db2-database удалена от клиента, то для проверки подлинности потребуется некоторая форма учетных данных. Такие учетные данные могут быть в форме сертификата (если Db2-database работает на Z / OS), или в форме идентификатора пользователя / пароля, или в форме билета kerberos, или в форме токена, используемого для облачной Db2 и т.д.
Для локального подключения jdbc без пароля к Db2-database можно использовать формат URL «jdbc: db2:your_database_name» .
Класс com.ibm.db2.jcc.DB2Driver
(как указано в поддерживаемых в настоящее время версиях db2jcc4.jar
) поддерживает соединения без пароля с этим шаблоном URL.
Пример с локальной базой данных-имя = образец.
try
{
Connection con = DriverManager.getConnection("jdbc:db2:sample");
...
}
catch (Exception e)
{
...
}
Центр знаний Db2 предоставляет здесь все подробные сведения о доступных свойствах jdbc
На других страницах показаны дополнительные свойства, специфичные для источников данных Z / OS, или облачных баз данных, или источников данных серии i, или источников informix и т.д.
Комментарии:
1. Уточнение: база данных DB2 не является локальной. Мое Java-приложение работает на компьютере M; DB2 работает на компьютере N. Оба являются серверами Windows. В моем Java-коде я не буду указывать имя пользователя / пароль при подключении к БД. Скорее, я ожидаю, что я буду проходить аутентификацию в базе данных DB2, используя учетную запись, под которой запущено мое приложение. Является db2jcc4.jar все, что мне для этого нужно? Нужно ли мне при настройке соединения указывать свойство типа integratedSecurity=true (как я бы сделал с MS-SQL).