0

我必須使用連接到不同數據庫/服務器上的第三方工具來收集一些數據並執行一些工作。這個應用程序只注意到它連接到Server1\DB1Server2\DB2Domain1並不重要。兩臺服務器僅使用Windows身份驗證(即客戶端必須連接IntegratedSecurity=true)。這種方法在Domain1中工作得很好。但有一天,我們決定將這個應用程序移動到另一個域上(商業原因)。我們在另一個域上創建了Server1\DB1的鏡像(我們稱之爲Server1IOtherDomain\DB1)。目前這個應用程序可以與S erver1OtherDomain\DB1一起使用,因爲我將它作爲新域的用戶運行,看起來一切正常。我們只需要在我們的環境中支持新版本的DB。然而前幾天我們已經認識到連接字符串Server2\DB2是硬編碼的,我們不能這樣做Server2\DB2(在我們的OtherDomain上創建鏡像)。很明顯,部分功能不能正常工作,因爲它不能在Domain1中達到Server2\DB2。 總結我的圖片:使用Windows身份驗證連接到不同域上的不同數據庫

enter image description here


我的2個問題:

  1. 是否有可能運行OtherDomain莫名其妙應用有它連接到不同域中的兩個數據塊?
  2. 是否有可能使C#程序可以連接到不同域中的各種服務器?例如對不同的主機使用不同的Windows身份驗證,如何管理這些情況?
+0

請注意,這個應用程序是第三方,我不能重建它。我試圖以不同的用戶runas/netonly/user:DOMAIN1 \ USER_NAME「App.exe」運行它,但是連接到「Server1OtherDomain \ DB1」。因爲在OtherDomain中運行,我不能使用舊的'Server1 \ DB1'。 – Alezis 2014-09-29 09:41:21

+0

都是域信任關係? – Fabio 2014-09-29 09:59:04

+0

是的,他們是。 – Alezis 2014-09-29 10:01:30

回答

1

要回答你的第二個問題:
它可以有一個可以在不同的領域中使用的C#程序,看看this answer一個簡單的C#實現,this Q/A約跨域認證更多的細節和this question有關SQL Server和跨域身份驗證的更具體的問題。
您需要採取措施使兩個域互相信任以允許從一個到另一個的連接,但是這也會打開這兩個域以應對更多安全問題,並且需要評估和制定這些決策由網絡管理員完成。

我也建議你看看WindowsIdentity.ImpersonateWindowsImpersonationContext的例子和關於如何具體實現模擬的附加信息。

相關問題