Sql-Server

對連結伺服器進行身份驗證 - SQL Server 8 到 SQL Server 10

  • June 25, 2012

我們有一個舊的SQL Server 2000數據庫,必須保留它,因為我們的製造機器需要它。它還維護我們的員工記錄,因為這些機器上需要它們來進行員工登錄。

我們還有一個更新的SQL Server 10數據庫(我認為這是 2008 年,但我不確定),我們正在用於更新的開發。

我找到了一個可以在 SO 上使用的查詢來提取記錄,但我必須首先連結兩個伺服器。微軟關於配置連結伺服器的資訊也對我沒有太大幫助。

在 SF post SQL Server to SQL Server Linked Server Setup之後,我嘗試添加連結。

在我們的SQL Server 2000機器上,我得到了這個錯誤:

SQL2000 錯誤

同樣,在我們的SQL Server 10機器上,我得到了這個錯誤:

SQL10 錯誤

這些消息雖然措辭不同,但可能說的是同一件事:我需要以某種方式進行身份驗證。

我們有一個 Active Directory,但它位於另一台伺服器上。

究竟應該在這裡做什麼?

一個人>>HERE<<說要檢查安全設置,但沒有說還能做什麼。兩台伺服器都設置為SQL Server 和 Windows 身份驗證模式

怎麼辦?

**編輯:**好的,我該怎麼做呢,蒂姆?

查看管理工具 -> 組件服務 MMC,電腦 -> 我的電腦 - 分佈式事務協調器 -> 本地 DTC -> 安全性。

我被遠端連接到 SQL Server 2000 機器,但我看到的只是:

組件服務快照

編輯2:

因此,我無法在我們的舊 Windows 2000 Server(執行 SQL Server 2000)上找到它,但我確實在我們的 Windows 7 Server(執行 SQL Server 10)上找到了它。

組件服務 7

我啟用了設置,讓服務重新啟動,現在我開始做其他事情了。

謝謝蒂姆!

在 SQL 2000 中配置連結伺服器/分佈式事務可能會有點麻煩,因為 SQL 2000 只支持匿名配置。這是一個已知的限制。

查看管理工具 -> 組件服務 MMC,電腦 -> 我的電腦 - 分佈式事務協調器 -> 本地 DTC -> 安全性。

啟用網路 DTC 訪問,允許遠端客戶端和遠端管理。為交易設置“無需身份驗證”框。

那應該這樣做。

我認為處理此問題的最簡單方法是在每台伺服器(servera 和 serverb)上設置 2 個 SQL 登錄名(logina 和 loginb),並在彼此之間創建一個連結伺服器。在 servera 上,您更改連結伺服器 (serverb) 的屬性並轉到安全選項卡。將單選按鈕更改為“使用登錄的安全上下文進行”,然後將“loginb”的 un/pw 放在“遠端登錄”和“使用密碼”選項中。

在 serverb 上,您更改連結伺服器 (servera) 的屬性並轉到安全選項卡。將單選按鈕更改為“使用登錄的安全上下文進行”,然後將“登錄”的 un/pw 放在“遠端登錄”和“使用密碼”選項中。

這將允許您使用 logina 的憑據從 serverb 到 servera 進行查詢,反之亦然。從那裡你只需要在 server1 和 serverb 上授予使用者權限。

這種方法的缺點是任何有權訪問 serverb 的人都可以更改 logina 有權訪問的 servera 上的數據,反之亦然,但配置應該比使用組件服務更簡單。如果您將贈款限制為僅閱讀,這將不是問題。

引用自:https://serverfault.com/questions/402056