JDBC не может подключиться к SQL Server или базе данных SQL Azure.

я использую

  • Версия JTDS: jtds-1.3.1
  • Версия MS SQL JDBC: mssql-jdbc-8.4.0.jre8 даже mssql-jdbc-9.2.0.jre8 Java 8 Update 251

для простоты код будет таким же:

Студия Android не может подключиться к базе данных на сервере SQL Azure

У меня проблема с подключением к базе данных SQL или Azure SQL.

Я хочу подключиться с этим синтаксисом:

val connectionString = "jdbc:jtds:sqlserver://192.168.xx.xx:1433;databaseName=myData;user=x1;password=p1;encrypt=true;trustServerCertificate=true;"

с помощью этой строки подключения JTDS я могу подключиться к моей базе данных сервера sql на локальном хосте. Но с MS-JDBC мне не удалось подключиться.

val connectionString = "jdbc:sqlserver://192.168.xx.xx:1433;databaseName=myData;user=x1;password=p1;encrypt=true;trustServerCertificate=true;"

со следующими ошибками:

com.microsoft.sqlserver.jdbc.SQLServerException: The Driver could not establish a secured connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Socket is closed". ClientConnectionId: xxxxxxxxxxxxxxxxx

Происходят интересные вещи. когда я подключаюсь с версией JTDS к SQL Azure с помощью команды:

jdbc:jtds:sqlserver://xxxxx.database.windows.net:1433;database=xxxxx;user=username;password=password;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;

Мне не удалось подключиться к SQL Azure со следующими ошибками

java.sql.SQLException: Reason: Login Failed due to client TLS Version being less than minimal TLS Version allowed by the server

Я уже пробовал:

  1. SSLProtocol=TLSv1.2 (TLS, TLSv1.0, TLSv1.1) => НЕ РАБОТАЕТ
  2. ssl=требовать

Это ОШИБКИ с JTDS, ошибки с JDBC или неверная строка подключения? я могу подключиться к SQL Azure с помощью приложений dotnet (C#)


person Chandra Arifin    schedule 08.02.2021    source источник
comment
docs.microsoft.com/ en-us/azure/azure-sql/managed-instance/ Можете ли вы попробовать изменить версию TLS в Azure?   -  person sonny    schedule 08.02.2021
comment
уже используют версию TLS 1.2 в SQL Azure. и другой экземпляр использует TLS 1.0, но НИ ОДИН РАБОТАЕТ   -  person Chandra Arifin    schedule 09.02.2021
comment
я могу подключиться с той же строкой подключения к sql azure, НО НЕ НАЖИМАЙТЕ на минимальную версию TLS. если вы уже ИЗМЕНИЛИ минимальную версию TLS (1.0, 1.1 или 1.2) и соединение не будет выполнено. надеюсь, что это поможет кому-то.   -  person Chandra Arifin    schedule 16.02.2021
comment
@ChandraArifin Непонятно, что вы имеете в виду, вы имеете в виду, что можете подключиться к SQL Azure с помощью jTDS? Какие изменения необходимы? Спасибо.   -  person user2552742    schedule 29.04.2021
comment
да, я могу подключиться к SQL Azure с помощью jTDS. ничего не меняется. просто убедитесь, что когда вы создаете SQL Azure в первый раз, НЕ ВЫБИРАЙТЕ ВЕРСИЮ TLS, просто позвольте ей быть. если вы уже выбрали один из TLS, вы не сможете подключиться к jTDS, потому что он уже зашифрован.   -  person Chandra Arifin    schedule 01.05.2021