JDBC conncetion字符串使用WindowsAuth到SQLS2014命名实例

时间:2016-01-28 16:36:37

标签: java jdbc mule windows-authentication named-instance

当我想连接到需要进行Windows身份验证的SQL服务器并且我要连接到命名实例时,我应该如何在jdbc中编写连接字符串?

所以我有像

这样的连接字符串
jdbc:sqlserver://sqlserver4\Test;datebaseName=TestDB;user=g\John;password=hello123

我也尝试使用sqlserver4;namedInstance=Test代替sqlserver4\Test

我在

下尝试过
  

控制面板 - >管理工具 - > ODBC数据源

     

Shift右键单击 - >以不同用户身份运行

使用此测试以user=g\John password=hello123身份登录我可以成功连接,但在我的jdbc连接字符串中,我得到Login failed for user g\John

在数据库中使用Windows用户身份验证和命名实例时,是否必须以特定方式设置连接字符串?

3 个答案:

答案 0 :(得分:1)

根据:https://msdn.microsoft.com/en-us/library/bsz5788z.aspx

  

如果您的应用程序在基于Windows的Intranet上运行,则可以使用Windows集成身份验证进行数据库访问。集成安全性使用在操作系统线程上建立的当前Windows标识来访问SQL Server数据库。然后,您可以将Windows标识映射到SQL Server数据库和权限。

  要使用Windows集成身份验证连接到SQL Server,您必须标识运行ASP.NET应用程序的Windows标识。您还必须确保已授予该标识访问SQL Server数据库的权限。本主题包含一个代码示例,该示例显示ASP.NET应用程序的当前Windows标识。

所以尝试添加这个:

integratedSecurity=true;

在连接字符串的末尾并删除用户名和密码

答案 1 :(得分:0)

在生产系统中,所有数据库服务器/主机都将具有特定于应用程序的用户ID,如report_app_user,dev_app_user,dev_env_user,test_env_user,uat_env_user,JDBC api将立即连接它。

请与IT支持团队/ db admin联系,以获取特定于应用程序的用户ID。

否则,您将无法使用与Windows身份验证绑定的db用户。

答案 2 :(得分:0)

我已经尝试了所有这些,但似乎我必须实现一些弹簧安全性并设置LDAP服务器才能通过AD用户与MuleESB连接。但无论如何,谢谢:)。