【问题标题】:Android App error connecting to Azure SQL DB via ms jdbc通过 ms jdbc 连接到 Azure SQL DB 的 Android 应用程序错误
【发布时间】:2016-10-05 11:15:35
【问题描述】:

我是 Android 应用程序开发的新手,我正在尝试使用本机 MS JDBC 驱动程序 (sqljdbc4.jar) 连接到 Azure SQL DB,但我不断收到以下错误:

“错误连接:驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接。错误:“套接字已关闭”。”

我可以使用与 squirrel 相同的连接字符串连接到数据库。

我使用的是 android studio 2.1.3,但我真的束手无策...... 这是代码:

DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String username = "<>";
String password = "<>";
java.sql.Connection DbConn = DriverManager.getConnection("jdbc:sqlserver://<myserver>:1433;databaseName=thumbsupp;user=" + username + ";password=" + password + ";encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;");

我什至尝试在代码中打开端口 1433 上的套接字:

SocketFactory sf = SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) sf.createSocket("<myserver>", 1433);
HostnameVerifier hverify = HttpsURLConnection.getDefaultHostnameVerifier();
SSLSession ssoc = socket.getSession();

虽然我打电话时得到true,但并没有占上风

hverify.verify();

我是否缺少 Android Studio 中的一些配置?

编辑:如果检查套接字上启用的协议:

socket.getEnabledProtocols();

我得到的唯一协议是 TLS1.0、TLS1.1 和 TLS1.2 ??

【问题讨论】:

    标签: android azure jdbc mssql-jdbc


    【解决方案1】:

    似乎有很多 SO/MSDN 线程都有相同的问题。同时,一种解决方法是使用 jTDS Driver 而不是 MS SQL Server JDBC Driver。

    请参考以下这些主题来解决您的问题。

    1. Sql Database connect Using the JDBC Driver with android
    2. https://social.msdn.microsoft.com/Forums/sqlserver/en-US/4799819a-27fd-4292-a3d8-f114207c20b2/using-the-jdbc-driver-with-android?forum=sqldataaccess
    3. https://blogs.msdn.microsoft.com/nickhodge/2010/01/25/jdbc-to-sql-azure/

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2013-09-29
      • 1970-01-01
      • 2017-05-27
      • 2019-05-26
      • 2023-04-01
      • 1970-01-01
      • 2020-10-19
      • 2021-11-30
      • 2016-03-19
      相关资源
      最近更新 更多