Microsoft最近发布了一个具有一些非常有趣的功能的新JDBC驱动程序(版本6.0.7507.100)。我最感兴趣的是TVP功能。这就是为什么我想用Microsoft驱动程序替换当前的jTDS驱动程序。从jTDS JDBC驱动程序迁移到Microsoft JDBC
尝试登录我们的生产服务器时出现问题。假设我们使用域用户“mydomain \ dbuser”登录到sql服务器实例。这是我们目前使用的jtds jdbc url:
jdbc:jtds:sqlserver:/sqlServer:1433/myDb;domain=mydomain;user=dbuser;password=secretPwd
它的工作原理就像是一种魅力。
但是,当我尝试使用Microsoft驱动程序时,我的应用程序无法建立到数据库的连接。我尝试了以下URL字符串:
jdbc:sqlserver://sqlServer:1433;database=myDb;username=dbuser;password=secretPwd
jdbc:sqlserver://sqlServer:1433;database=myDb;username=mydomain\dbuser;password=secretPwd
jdbc:sqlserver://sqlServer:1433;database=myDb;[email protected];password=secretPwd
和许多其他排列但没有成功。该应用程序失败,出现以下异常:
Login failed for user 'mydomain\dbuser'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: 10.10.10.10]
注意,应用程序应该在Linux下运行:
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'mydomain\dbuser'
在SQL Server日志中我们得到以下错误
。
有谁知道当以域用户身份连接时,Microsoft JDBC URL的外观应该如何?
我会建议不要将凭据传递的URL的方式。在创建连接时将它们传递给驱动程序管理器。 – duffymo
我会的。只要我找出如何使登录工作 –
将其移出URL将使其工作。你应该使用DriverManager来完成它。 – duffymo