问题 如何使用JDBC驱动程序的集成安全性连接到SQL Server?


我正在尝试使用Microsoft的SQL Server 2005 JDBC驱动程序连接到我公司的SQL服务器。这就是我的连接字符串的样子:

jdbc:sqlserver://HOSTNAME;integratedSecurity=true;database=DATABASE;

驱动程序抛出异常:

Invalid integratedSecurity property value:true

使用“yes”代替提供不同的错误消息,指示“yes”不是布尔属性的有效选项。

如何使用集成安全性进行连接?


10283
2018-01-07 19:59


起源

你的bin / lib文件夹中有sqljdbc_auth.dll吗? - jason saldo
@jms有趣的故事:这实际上很难说。出于某种神秘的原因,我没有列出JDBC驱动程序目录内容的权限,但我可以使用它们的路径访问内部文件。 - zneak
@jms没有 auth 我们在JDBC驱动程序中的目录。刚刚获得3.0版本(而不是你google它时首先出现的1.0)。我想它会更好。 - zneak


答案:


检查一下 说明 ,也 - 你在同一个域(呼叫者和服务器?)

引自那里:

JDBC驱动程序支持通过integratedSecurity连接字符串属性在Windows操作系统上使用Type 2集成身份验证。要使用集成身份验证,请将sqljdbc_auth.dll文件复制到安装JDBC驱动程序的计算机上Windows系统路径上的目录中。

sqljdbc_auth.dll文件安装在以下位置:

<installation directory>\sqljdbc_<version>\<language>\auth\

注意:

如果您运行的是32位Java虚拟机(JVM),请使用   x86中的sqljdbc_auth.dll文件   文件夹,即使是操作系统   是x64版本。如果你在跑   使用x64处理器上的64位JVM   x64中的sqljdbc_auth.dll文件   夹。如果您运行的是64位   在IA-64处理器上的JVM,使用   IA64中的sqljdbc_auth.dll文件   夹。

或者,您可以设置java.libary.path系统属性以指定sqljdbc_auth.dll的目录。例如,如果JDBC驱动程序安装在缺省目录中,则可以在启动Java应用程序时使用以下虚拟机(VM)参数指定DLL的位置:

-Djava.library.path=C:\Microsoft SQL Server 2005 JDBC Driver\sqljdbc_<version>\enu\auth\x86

14
2018-01-07 20:04



事实证明,Google首先显示的JDBC驱动程序已经过时了。我升级并按照说明操作,效果很好。 - zneak