【问题标题】:Sql Server - connect with windows authenticationSql Server - 使用 Windows 身份验证连接
【发布时间】:2011-04-10 14:49:13
【问题描述】:

我必须通过 Windows 身份验证连接到 sql server

sql 服务器在机器 192.168.3.6 上 网络服务器(客户端)在我的机器 192.168.3.10

我正在使用 JTDS 驱动程序

dbUrl=jdbc:jtds:sqlserver://192.168.3.6:1099/db_test;instance=test
Connection con = DriverManager.getConnection( dbUrl, "", "" );

我有sql server管理员用户的用户名和密码!

我还将ntlmauth.dll 放入c:\windowsc:\windows\system32 中,我总是出错:

java.sql.SQLException:用户“(null)”登录失败。原因:没有 与受信任的 SQL Server 连接相关联。

有什么办法可以解决我的问题吗? 非常感谢

【问题讨论】:

    标签: sql-server jdbc


    【解决方案1】:

    你可以做的是这样的:

    String url = "jdbc:jtds:sqlserver://MYPC/MYDB;instance=SQLEXPRESS";
    Class.forName("net.sourceforge.jtds.jdbc.Driver");
    Connection conn = DriverManager.getConnection(url);
    

    确保 Java 构建路径中有 jtds.jar。

    另外,添加“-Djava.library.path="PATH\JTDS\x64\SSO”,其中“路径”是安装 JTDS 驱动程序后 SSO 文件夹所在的位置(这是您的 ntlmauth.dll 所在的位置)。

    Here 是一个简短的分步指南,展示了如果您需要更多详细信息,如何使用带有 Windows 身份验证的 jTDS(以及 JDBC)连接到 SQL Server。希望对您有所帮助!

    【讨论】:

      【解决方案2】:

      请参阅 jTDS 常见问题解答http://jtds.sourceforge.net/faq.html

      您必须通过 useNTLMv2=truedomain=yourdomain

      【讨论】:

      • Wonderfull,我已经解决了 dbUrl=jdbc:jtds:sqlserver://192.168.3.6:1099/db_test;instance=test;useNTLMv2=true;domain=workgroup Connection con = DriverManager.getConnection( dbUrl , dbUser, dbPwd ) 我必须使用参数 useNTLMv2=true 和 domain。参数域的值并不重要。它也适用于 domain=pippo !我不知道怎么...... :-)
      • 关于为什么这适用于 TC 但不适用于具有完全相同参数的 DBVisualizer 的任何想法?
      • 我没有看到解决为连接字符串输入密码的问题;似乎被回避了。有人可以提出一些建议吗?
      猜你喜欢
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      相关资源
      最近更新 更多