Ошибка аутентификации интеграции Microsoft SQL Server 2017 и Knime - PullRequest
0 голосов
/ 31 декабря 2018

Есть несколько старых постов об интеграции базы данных с Knime, однако я не нашел никаких обсуждений относительно последних версий Java, Knime и SQL.Я провел дни, просматривая форумы здесь, в StackOverflow и в других местах, пытаясь подключиться к базе данных с помощью Knime, однако ничего не помогло.

Конфигурация моего компьютера выглядит следующим образом: 64-разрядная операционная система Microsoft SQL Server 2017 (64разрядная версия) Microsoft SQL Server Management Studio 17 Драйвер Microsoft JDBC 7.0 для SQL Server KNIME 3.7.0 (64-разрядная версия) Java jre1.8.0_191

До сих пор я пробовал: Загрузка версий Java в оба программных файла\ Java и программные файлы (x86) \ Java.В настоящее время у меня есть версия Java, которая хранится в каталоге Program Files, а не в каталоге (x86).

Загрузка и разархивирование драйвера JDBC 7.0 'sqljdbc_7.0.0.0_enu'.Я также попробовал драйвер JDBC 6.0, но это не сработало.

, поместив sqljdbc_auth.dll в C \ Program Files \ Java \ jre1.8.0_191 \ bin и C \ Program Files \ Java \ jre1.8.0_191 \ lib directory.

Включение порта TCP / IP в Microsoft SQL Server Management Studio

Настройка узлов коннектора базы данных Knime, считывателя базы данных и коннектора Microsoft SQL Server для следующих параметров: Драйвер базы данных: com.microsoft.sqlserver.jdbc.SQLServerDriver URL базы данных: jdbc: sqlserver: // (localhost);integratedSecurity = TRUE;Аутентификация: установлен флажок «Использовать учетные данные» (для средства чтения базы данных эта функция заблокирована)

Когда я выполняю узел «Соединитель базы данных», я получаю следующую ошибку: ОШИБКА Соединитель базы данных 0: 2 Не удалось выполнить соединение: Не удалось создать соединение сбаза данных: нет sqljdbc_auth в java.library.path

При выполнении узла «Считыватель базы данных» появляется следующая ошибка: ОШИБКА Считывателя базы данных 0: 1 Ошибка выполнения: этот драйвер не настроен для встроенной проверки подлинности.ClientConnectionId: 4906d2f3-e3df-4016-a383-29840cb4dee2

Когда я выполняю соединитель Microsoft SQL Server, я получаю следующую ошибку: ОШИБКА Соединитель Microsoft SQL Server 0: 5 Сбой при выполнении: не удалось создать соединение с базой данных: нетsqljdbc_auth в java.library.path

Ответы [ 2 ]

0 голосов
/ 01 января 2019

Драйвер Microsoft JDBC, похоже, предпочитает, чтобы sqljdbc_auth.dll был виден в Windows PATH, чтобы сделать его доступным для доверенных соединений (проверка подлинности Windows) с экземпляром SQL Server.Убедитесь, что DLL находится в папке в ПУТИ.

0 голосов
/ 31 декабря 2018

Это кажется для настройки встроенной аутентификации требуется дополнительный шаг настройки.Я предполагаю, что вы используете KNIME с 64-битной JVM, поэтому вам следует скопировать C:\Microsoft JDBC Driver 6.4 for SQL Server\sqljdbc_<version>\enu\auth\x64\sqljdbc_auth.dll в папку C:\Windows\System32 или добавить следующую строку в knime.ini (где-то после строки -vmargs):

-Djava.library.path=C:\Microsoft JDBC Driver 6.4 for SQL Server\sqljdbc_<version>\enu\auth\x64

(я полагаю, что <version> должно быть чем-то подходящим для вашего драйвера JDBC, установленного для KNIME. Вероятно, путь также требует дополнительных настроек.)

Я думаю, что второй вариант предпочтительнее, так что вы можете использовать разные драйверы JDBC, но требует установки knime.ini для всех установок.

...