我们的 Java 应用程序使用 jTDS 1.3.1 连接到 SQL Server,它工作正常,直到客户端尝试将数据库放在 Azure SQL 上。连接失败,出现以下异常:
java.sql.SQLException:原因:由于客户端 TLS 版本低于服务器允许的最低 TLS 版本而导致登录失败。
我检查了jTDS的文档,无论如何都看不到指定TLS版本。除了用 MS JDBC 驱动程序替换它之外,还有人成功地解决了其他问题吗?
我无权访问 Azure SQL,因此无法测试将 TLS 版本降低到 1.0 是否有效。
偶然解决了这个问题。只需将“;ssl=request”附加到连接字符串即可。看起来默认情况下 SSL/TLS 是禁用的。有关 TLS 版本的错误消息具有误导性。希望这对将来的人有所帮助。
尝试将 .Net 应用程序连接到 Azure 托管实例中的 Azure SQL 数据库时遇到同样的问题。
我是这样解决的。
我以前的 JDBC URL 是这样的:
jdbc:jtds:sqlserver://my-example-instance.c656df8582985.database.windows.net:1433
我刚刚在 URL 末尾添加了
ssl=require
,所以它变成了:
jdbc:jtds:sqlserver://my-example-instance.c656df8582985.database.windows.net:1433;ssl=require
是否需要传递用户名和密码或者可以使用AD身份验证?