JTDS与SQL Server的连接使用SQL身份验证,但不能使用Windows身份验证

时间:2014-04-18 17:36:21

标签: java sql-server windows jdbc jtds

我花了很多时间试图弄清楚如何让我的本地Java应用程序连接到我的本地SQL Server数据库(在Windows Pro 64位上运行的Microsoft SQL Server 2012)。本地数据库仅使用Windows身份验证,我能够让Java与数据库通信的唯一方法是将我的SQL Server更改为“Windows身份验证和SQL Server身份验证”,为数据库创建SQL登录帐户,以及使用该帐户连接。换句话说,在使用用户名“jsmith”和通用密码设置帐户后,这是有用的:

DriverManager.getConnection ("jdbc:jtds:sqlserver://localhost:1433;instance=SQLEXPRESS;DatabaseName=mydb", "jsmith", "password");

但是,我仍然有兴趣尝试使用Windows身份验证让Java与我的SQL数据库通信。这是我的数据库的Windows身份验证登录屏幕:

SQL Server login

使用此行会产生错误“登录失败。登录来自不受信任的域,不能与Windows身份验证一起使用。”:

DriverManager.getConnection ("jdbc:jtds:sqlserver://localhost:1433;instance=SQLEXPRESS;DatabaseName=mydb;useNTLMv2=true;domain=abc.local", "jsmith", "");

(我的电脑有“abc.local”域名,我以“jsmith”身份登录。)

使用此行产生错误“I / O错误:SSO失败:未加载本机SSPI库。检查java.library.path系统属性。”:

DriverManager.getConnection ("jdbc:jtds:sqlserver://localhost:1433;instance=SQLEXPRESS;DatabaseName=mydb;useNTLMv2=true;domain=abc.local;username=jsmith;password=");

我已经在网上做了很多关于这个问题的研究,并且无法提出可行的解决方案。我希望社区能提供任何建议或帮助。提前谢谢!

0 个答案:

没有答案