Java JDBC 连接 Integrated Security 只能在我的 Eclipse 中工作
Posted
技术标签:
【中文标题】Java JDBC 连接 Integrated Security 只能在我的 Eclipse 中工作【英文标题】:Java JDBC connection Integrated Security work only from my Eclipse 【发布时间】:2013-01-22 10:01:41 【问题描述】:当我在 Eclipse 中打开 jdbc 连接时 - 它工作正常。
但是当我创建可执行 jar 文件并运行它时 - 我遇到了 Integrated Security=true 的问题。
或者可能不仅具有集成安全性...
【问题讨论】:
你能显示任何异常或一些代码吗? 下载最新版本的sqlserver db jar。我听说旧版本没有处理集成安全性! 主要问题:我的程序在 Eclipse 下工作,但是当我从命令行运行它时,它不能使用 jdbc 驱动程序 【参考方案1】:我假设您正在谈论连接到 Microsoft SQL Server。为了能够使用集成安全性,您需要在java.library.path
上添加sqljdbc_auth.dll
,如http://msdn.microsoft.com/en-us/library/ms378428.aspx#Connectingintegrated 中所述:
JDBC 驱动程序通过integratedSecurity 连接字符串属性支持在Windows 操作系统上使用Type 2 集成身份验证。要使用集成身份验证,请复制
sqljdbc_auth.dll
将文件复制到安装 JDBC 驱动程序的计算机上的 Windows 系统路径上的目录中。
sqljdbc_auth.dll
文件安装在以下位置:
<installation directory>\sqljdbc_<version>\<language>\auth\
[...]
您也可以设置 java.libary.path 系统属性来指定
sqljdbc_auth.dll
的目录。例如,如果 JDBC 驱动程序安装在默认目录中,您可以在 Java 应用程序启动时使用以下虚拟机 (VM) 参数指定 DLL 的位置:
-Djava.library.path=C:\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_<version>\enu\auth\x86
请注意,您需要根据 java VM 的位数使用正确的 DLL(因此对于 32 位,使用来自 x86
的那个,对于 64 位,使用来自 x64
的那个)。
【讨论】:
你是对的——它是关于授权的。现在我尝试使用你的答案。 首先:我没有这样的目录:C:\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_-D
和 java.library.path
之间也不应该有空格)
我生成可运行文件的 ant xml? mb 它可以帮助理解问题:以上是关于Java JDBC 连接 Integrated Security 只能在我的 Eclipse 中工作的主要内容,如果未能解决你的问题,请参考以下文章