0

我有以下问题:我无法将我的 Sql Server 数据库连接到我的 Java 项目。我的数据库是 SQL Server 2008 R2。并具有 Windows 身份验证模式。我使用了以下代码行,但仍然是同样的问题。

"jdbc: sqlserver :/ / localhost; integratedSecurity = true;"

如果数据库用户有密码,我必须与以下代码行集成?

"jdbc: `sqlserver :/ / localhost; integratedSecurity = true; = user, password =;"

如果我不能使用 Windows 身份验证进行身份验证,我必须使用相同的数据创建第二个数据库,唯一的区别是使用 Sql Server 身份验证而不是 Windows 身份验证。

4

2 回答 2

1

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

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

对于 Microsoft JDBC Driver for SQL Server 支持的任何操作系统,请参阅使用 Kerberos 集成身份验证连接到 SQL Server,以了解 Microsoft JDBC Driver 4.0 for SQL Server 中添加的功能的描述,该功能允许应用程序使用集成的连接到数据库使用 Type 4 Kerberos 进行身份验证。

注意:如果您运行的是 32 位 Java 虚拟机 (JVM),请使用 x86 文件夹中的 sqljdbc_auth.dll 文件,即使操作系统是 x64 版本。如果您在 x64 处理器上运行 64 位 JVM,请使用 x64 文件夹中的 sqljdbc_auth.dll 文件。或者,您可以设置 java.libary.path 系统属性以指定 sqljdbc_auth.dll 的目录。

例如,如果 JDBC 驱动程序安装在默认目录中,您可以在 Java 应用程序启动时使用以下虚拟机 (VM) 参数指定 DLL 的位置:-Djava.library.path=C:\Microsoft用于 SQL 的 JDBC 驱动程序 4.0

Server\sqljdbc_<version>\enu\auth\x86

http://msdn.microsoft.com/en-us/library/ms378428.aspx

于 2013-06-28T16:25:43.270 回答
-2

您收到的错误表明问题出在 JDBC 驱动程序上,而不是数据库或应用程序代码上。

根据 Microsoft 论坛,该问题已在 1.2 版驱动程序中得到修复。请尝试下载此版本,因为它应该可以解决您的问题。

最新版本可在http://www.microsoft.com/en-in/download/details.aspx?id=11774找到

参考:http ://www.microsoft.com/en-in/download/details.aspx?id=11774

于 2013-06-28T11:33:23.533 回答