Share via


連結伺服器的安全性

更新: 2006 年 12 月 12 日

在連結伺服器連接期間 (例如,當它在處理分散式查詢時),傳送端伺服器會提供一個登入名稱與密碼來代表它本身,以連接到接收端伺服器。這個連接若要能作用,您必須使用 SQL Server 系統預存程序在連結伺服器之間建立登入對應。

連結伺服器的登入對應可以使用 sp_addlinkedsrvlogin 來新增,以及使用 sp_droplinkedsrvlogin 來移除。連結伺服器登入對應會為指定的連結伺服器與本機登入,建立遠端登入與遠端密碼。當 SQL Server 連接到連結伺服器以執行分散式查詢或預存程序時,SQL Server 會尋找正在執行查詢或程序之現行登入的任何登入對應。若有登入對應的話,SQL Server 會在連接到連結伺服器時傳送對應的遠端登入與密碼。

例如,連結伺服器 S1 的對應已設定為從本機登入 U1 對應到遠端登入 U2,而使用的遠端密碼為 8r4li034j7$。當本機登入 U1 執行分散式查詢來存取儲存於連結伺服器 S1 的資料表時,U28r4li034j7$ 便會在 SQL Server 連接到連結伺服器 S1 時,當做使用者識別碼與密碼來傳遞。

連結伺服器設定的預設對應為模擬登入的現有安全憑證。這種對應也稱為自我對應。使用 sp_addlinkedserver 新增連結伺服器時,便會為所有本機登入新增預設的自我對應。如果可以使用安全性帳戶委派,而且連結伺服器也支援「Windows 驗證」,則可支援 Windows 驗證登入的自我對應。

ms175537.note(zh-tw,SQL.90).gif附註:
可能的話,請使用「Windows 驗證」。

如果用戶端或傳送端伺服器上不能使用安全性帳戶委派,或連結伺服器/提供者無法辨認「Windows 驗證模式」,則自我對應便不適用於使用「Windows 驗證」的登入。因此,您必須設定一個本機登入,從使用「Windows 驗證」的登入對應到連結伺服器上之非 Windows 驗證的特定登入。在此情況下,如果連結伺服器是 SQL Server 執行個體的話,則遠端登入會使用「SQL Server 驗證」。

分散式查詢必須遵從由遠端資料表上的連結伺服器授予遠端登入的權限。但是,SQL Server 不會在編譯的時候執行任何的權限驗證。任何違反使用權限的情形都在查詢執行階段時偵測,並由提供者做出報告。

測試連結伺服器

在 SQL Server 2005 Service Pack 2 中,您可以測試是否能連接到連結伺服器。在 [物件總管] 中,以滑鼠右鍵按一下連結伺服器,然後按一下 [測試連接]

請參閱

概念

連結伺服器
設定委派之連結的伺服器

其他資源

sp_addlinkedserver (Transact-SQL)
sp_addlinkedsrvlogin (Transact-SQL)
sp_droplinkedsrvlogin (Transact-SQL)
sp_dropserver (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_serveroption (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

新增內容:
  • 新增<測試連結伺服器>一節。