当我想连接到需要进行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用户身份验证和命名实例时,是否必须以特定方式设置连接字符串?
答案 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连接。但无论如何,谢谢:)。