【发布时间】:2014-11-23 15:51:14
【问题描述】:
我必须使用连接到不同数据库/服务器上的第 3 方工具来收集一些数据并做一些工作。这个应用程序做什么并不重要,只需注意它连接到Domain1 上的Server1\DB1 和Server2\DB2。两台服务器都只使用 Windows 身份验证(即客户端必须与IntegratedSecurity=true 连接)。这种方法在Domain1 中效果很好。但是有一天我们决定将这个应用程序转移到另一个域(商业原因)。我们在另一个域上创建了Server1\DB1 的镜像(我们称之为Server1IOtherDomain\DB1)。目前这个应用程序可以与 Server1OtherDomain\DB1 一起使用,因为我以新域用户的身份运行它,看起来一切正常。我们只需要在我们的环境中支持新版本的数据库。然而几天前我们已经认识到到Server2\DB2 的连接字符串是硬编码的,我们不能对Server2\DB2 做同样的事情(在我们的OtherDomain 上创建镜像)。显然,某些功能无法正常工作只是因为它无法到达Domain1 中的Server2\DB2。
总结一下我有图片:
我的两个问题:
- 是否可以在
OtherDomain中以某种方式运行应用程序以使其连接到不同域中的两个数据库? - 是否可以为不同域的各种服务器制作可以连接的C#程序?比如对不同的主机使用不同的Windows Authentication,这种情况如何管理?
【问题讨论】:
-
请注意,这个应用程序是第 3 方,我无法重建它。我试图以不同的用户
runas /netonly /user:DOMAIN1\USER_NAME "App.exe"运行它,但是与Server1OtherDomain\DB1的连接断开了。因为在 OtherDomain 中运行我不能使用旧的Server1\DB1。 -
两个域是信任关系吗?
-
如果应用程序是第三方的,那么这不是一个编程问题,而是一个基础设施问题,最好在Server Fault 上提出,不是吗?
-
你有什么错误信息吗?
标签: c# sql-server cross-domain database-connection windows-authentication