Mssql-jdbc всегда выдает недопустимую схему аутентификации NTLM

new SQLServerDriver();
String connectionUrl = "jdbc:sqlserver://<server>;integratedSecurity=true;authenticationScheme=NTLM;domain=<MYDOMAIN>;user=<user>;password=<password>;";
try (Connection con = DriverManager.getConnection(connectionUrl); Statement stmt = con.createStatement()) {
    String SQL = "select auth_scheme from sys.dm_exec_connections where session_id=@@spid";
    ResultSet rs = stmt.executeQuery(SQL);
    while (rs.next()) {
        System.out.println(rs.getString(1));
    }
}

Вот моя версия ОС и Java:

ОС: Windows 10
версия openjdk "1.8.0_242"
Среда выполнения OpenJDK (сборка 1.8.0_242-b08)
64-разрядная виртуальная машина сервера OpenJDK (сборка 25.242-b08, смешанный режим)

Не имеет значения, является ли строка «NTLM» или «ntlm» и т. д., это сообщение:

Схема аутентификации "" недействительна

здесь точно не получится https://github.com/microsoft/mssql-jdbc/blob/dev/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerDriver.java#L245

Извините, единственный способ воспроизвести вашу ошибку — добавить ;authenticationScheme=\"\" в конец строки подключения. Однако я отмечаю, что сообщение об ошибке в заголовке вашего вопроса отличается от сообщения в теле вашего вопроса, и я могу воспроизвести эту ошибку, если включу в текст пробелы нулевой ширины Unicode (\u200b) NTLM. Возможно ли, что это ваша проблема?

Luke Woodward 11.12.2020 22:38
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
3 263
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я столкнулся с той же проблемой. Это решается с помощью последней версии драйвера jdbc mssql-jdbc-9.2.0.jre8.jar. Кроме того, убедитесь, что файл dll mssql-jdbc_auth-9.2.0.x64.dll помещен в путь к lib.

Другие вопросы по теме