sql server ssl安全错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server ssl安全错误相关的知识,希望对你有一定的参考价值。
参考技术A 经过排查,发现原来的SQL Server Driver在新环境下不能连接到SQL Server 2017。通过查阅相关文档和与客户公司IT交流得知,在SQL Server 2016及以后,ODBC驱动需要由SQL Server改为ODBC Driver 17 for SQL Server,但是快速开发平台并不仅仅使用ODBC Driver,还需要 OLE DB Provider的支持。
ODBC Driver 17 for SQL Server仅提供ODBC驱动,不满足快速开发平台的要求。
经过对各种驱动程序的筛选,最后选定SQL Server Native Client 11.0作为新环境的驱动程序,然后由平台的开发人员对平台中的相关代码和界面进行调整,最终在新环境连接数据库成功,可以正常运行。
从 Tomcat 到 SQL Server 2014 的 Java 7 SSL 连接
【中文标题】从 Tomcat 到 SQL Server 2014 的 Java 7 SSL 连接【英文标题】:Java 7 SSL connection to SQL Server 2014 from Tomcat 【发布时间】:2016-11-01 15:11:13 【问题描述】:我正在尝试通过 JDBC 驱动程序使用 Java 7 连接到 SQL Server 2014,应用程序抛出的错误是:
驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接。错误:“SQL Server 返回不完整的响应。连接已关闭。”
我的代码是:
driver ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
url ="jdbc:sqlserver://Ip:port;databasename=xxx";
user = "xxx";
pass = "xxx";
Class.forName(driver);
connection = DriverManager.getConnection(url, user, pass);
我从 MSDN 下载了 ODBC 驱动程序包,并尝试依次使用以下各项:sqljdbc.jar
、sqljdbc4.jar
、sqljdbc41.jar
和 sqljdbc42.jar
,但每次都遇到相同的错误。
【问题讨论】:
我在您提供的指定 SSL 的代码中看不到任何内容。 你用的是什么端口? 5081 是我用来连接的端口。 如果“使用所有 [它们]”是指将所有四个 JAR 文件放在 CLASSPATH/Build_Path 中,然后尝试删除其中三个并留下sqljdbc4.jar
。当连接到需要 SSL 连接的 SQL Server 实例时,它对我有用。
@IvanFontalvo - 尝试创建一个简单的 Java 控制台应用程序以使用 sqljdbc4.jar
连接到 SQL Server。如果失败了,那么你的问题就更根本了(例如,SQL Server 设置、网络配置等)。如果成功,那么您将需要更深入地研究 Tomcat 配置的细节。 (另外,请记住在回复评论时包含@UserName。)
【参考方案1】:
我使用JTDS 作为驱动程序管理器解决了这个问题,我现在的代码是:
driver ="net.sourceforge.jtds.jdbc.Driver;
url ="jdbc:jtds:sqlserver://Ip:port;databasename=xxx";
user = "xxx";
pass = "xxx";
Class.forName(driver);
connection = DriverManager.getConnection(url, user, pass);
我在我的类路径中添加了 lib jtds1.5.1。
【讨论】:
您提供的链接中没有 jtds1.5.1 二进制文件。 令人惊讶的是,JTDS 1.3(最后一个稳定版本)也可以解决这个错误。以上是关于sql server ssl安全错误的主要内容,如果未能解决你的问题,请参考以下文章
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接 异常解决方法
java:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接:“The server selected protocol version TLS10 is not a
jdbc连接sqlserver2008时报错 "驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接"