2016-11-25 81 views
0

我在Linux中的Java应用程序试图访问MSSQL数据库并失败。 Keytab,安全登录和krb5全部被定义。驱动程序是sqljdbc4-2.0.jar。该错误消息仍在寻找Windows身份验证。Linux访问MSSQL失败

driver:com.microsoft.sqlserver.jdbc.SQLServerDriver 
url:jdbc:sqlserver://AAA.com:10501;instanceName=BBB_DEV;integratedSecurity=true;authenticationScheme=JavaKerberos 
Nov 25, 2016 3:42:26 PM com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit> 
WARNING: Failed to load the sqljdbc_auth.dll 
+0

为什么投入得到行家6.1版本?任何解决方案 – user1615666

+1

您的连接字符串说明了这一切,如果不是其他任何内容 - “integratedSecurity = true”用于SQL Server上的Windows身份验证。 –

+0

@ N00bPr0grammer不,它不适用于最新的JDBC驱动程序,请参阅https://msdn.microsoft.com/en-us/library/gg558122(v=sql.110).aspx –

回答

2

Microsoft SQL Server JDBC驱动程序的版本2.0相当陈旧,仅在版本4.0中添加了对纯Java Kerberos身份验证的支持。见Using Kerberos Integrated Authentication to Connect to SQL Server

开始在微软的JDBC驱动程序4.0 SQL Server中,应用程序可以使用authenticationScheme连接属性表明,它希望通过使用纯Java Kerberos实现

的Kerberos集成身份验证连接到数据库

无论download version 6.0 from Microsoft,或使用

<dependency> 
    <groupId>com.microsoft.sqlserver</groupId> 
    <artifactId>mssql-jdbc</artifactId> 
    <version>6.1.0.jre8</version> 
</dependency>