到SQL Server的JTDS连接问题 - 适用于2000但不适用于2005

时间:2010-09-06 08:39:48

标签: sql-server sql-server-2005 jdbc

我一直试图让一个java应用程序通过jtds jdbc连接到几个SQL服务器。我必须通过Windows身份验证连接。

指定的连接字符串是:

String connectionString = _"jdbc:jtds:sqlserver://"+server+":"+port+"/"+database+";domain="+domain;_

我通过以下方式获得连接:

con = java.sql.DriverManager.getConnection(url, _username, _password);

这在我的SQL Server 2000上工作正常但在SQL Server 2005上没有。在我的SQL Server 2005上,我收到以下错误消息:

java.sql.SQLException:用户''登录失败。用户未与受信任的SQL Server连接关联。

看起来有点好笑,因为异常中的用户是空白的,但参数中指定的用户名不是空白。

我觉得它可能与NTLM和Windows身份验证有关,因为它在我尝试使用SQL身份验证进行记录时(即没有域属性)

1 个答案:

答案 0 :(得分:0)

这是因为SQL Server 2005/2008在安装后具有不同的默认值。你还需要:

  1. 在Windows防火墙中打开端口1433。
  2. 在端口1433上启用TCP侦听器(在SQL配置管理器中)(您可以为计算机的每个IP地址启用/禁用侦听器)
  3. 启用 sa 帐户(或创建自己的SQL帐户)(这也假设您没有使用集成身份验证)
  4. 启用实例的混合身份验证。
  5. 如果这不起作用,请告诉我们使用Microsoft JDBC驱动程序版本3.x或更高版本获得的结果......