別名 (SQL Server 組態管理員)
只適用於 SQL Server - 僅限 Windows。
別名是可用於進行連接的替代名稱。 別名會封裝連接字串的必要元素,並以使用者選擇的名稱來公開這些元素。 若要在此電腦上建立 Microsoft SQL Server 用戶端的別名,請以滑鼠右鍵按一下主控台窗格中的 [別名],然後選取 [新增別名]。 若要在此電腦上設定 SQL Server 用戶端的現有別名,請選取主控台窗格中的 [別名]在詳細資料窗格內以滑鼠右鍵按一下想要設定的現有別名,然後選取 [屬性]。
注意
SQL Server 的別名是用戶端組態。 每台使用別名的用戶端電腦都必須有相同的別名組態,而 SSQL Server 組態管理員並非唯一可用來建立或管理別名的工具。
SQL Server 2022 和更新版本不支援使用 SQL Server 組態管理員 建立別名。 若要建立 SQL Server 2022 和更新版本的別名,請使用 SQL Server 用戶端網路公用程式工具。
使用別名的時機
根據預設,SQL Server 會使用共用記憶體通訊協定來連線至 SQL Server 的本機執行個體;使用 TCP/IP 或具名管道來連線到其他電腦上的 SQL Server 執行個體。 當您想要使用 TCP/IP 或具名管道,並且想要提供自訂連接字串,或當您想要使用其他名稱 (而不使用伺服器名稱) 來進行連接時,請建立別名。
範例
SQL Server 並非接聽預設 TCP/IP 連接埠 1433,因此您必須為連接字串提供其他連接埠號碼。
SQL Server 並非接聽預設具名管道,因此您必須為連接字串提供其他管道名稱。
應用程式想要連接到伺服器上的
ACCT
資料庫,但該資料庫已被合併為ACCT
伺服器上的CENTRAL
執行個體。 該應用程式無法輕易修改。 您可以建立名為ACCT
的別名,其連接字串指向CENTRAL\ACCT
。
別名屬性
別名名稱
您想要用來代表這個連接的名稱 (別名)。
管道名稱或埠號碼
連接字串的其他元素。 這個方塊的名稱會隨著選取的通訊協定變化。
通訊協定
用於連接的通訊協定。
Server
所要連線目標 Microsoft SQL Server 執行個體的名稱。
共用記憶體連線
從相同電腦上執行的用戶端連接到 SQL Server 時,可使用共用記憶體通訊協定和具名管道通訊協定。 共用記憶體並沒有可設定的內容。 連接時永遠會先嘗試使用共用記憶體,而且您無法將它從 [用戶端通訊協定屬性] 清單上之 [啟用的通訊協定] 清單的最高位置移除。 您可以停用「共用記憶體」通訊協定,這在針對其他通訊協定中的其中一個通訊協定進行疑難排解時非常有幫助。
您不能使用共用記憶體通訊協定來建立別名,但如果已啟用共用記憶體,則可以使用名稱來連接到資料庫引擎,以建立共用記憶體連接。 共用記憶體連接字串使用 lpc:<servername>[\instancename]
格式。
使用共用記憶體連線到本機伺服器
連線到與用戶端在同一部電腦上執行的 SQL Server 時,可以使用 (local)
作為伺服器名稱。 不建議使用這個值,因為會造成模糊不清,但是若確實知道用戶端正在預期的電腦上執行,這就很有用。 例如,為非連線的行動式使用者建立應用程式 (亦即 SQL Server 在筆記型電腦上執行並儲存專案資料) 時,連線到 (local)
的用戶端一律會連線到筆記型電腦上執行的 SQL Server。 可以使用 localhost 或句點 ( . ) 來取代 (local)
。
共用記憶體連線的範例
如果共用記憶體通訊協定已啟用,下列名稱可以使用此通訊協定來連接到本機電腦:
<servername>
<servername>\<instancename>
(local)
localhost
您無法建立共用記憶體連接的別名。
注意
在 [伺服器] 方塊中指定 IP位址會導致命名管道或 TCP/IP 連線,具體取決於伺服器的組態。
TCP/IP 連線
若要使用具有 TCP/IP 的別名連線到 SQL Server,您必須:
指定 別名名稱。
針對 [伺服器],輸入您可以使用 ping 公用程式連接的伺服器名稱,或是可以使用 ping 公用程式連接的 IP 位址。 針對具名執行個體,請附加執行個體名稱。
在 [通訊協定] 中指定 [TCP/IP] 。
(選擇性) 在 [通訊埠編號] 中輸入通訊埠編號。 預設為
1433
,也就是伺服器上資料庫引擎預設執行個體的連接埠號碼。 若要連線到具名執行個體或未接聽通訊埠 1433 的預設執行個體,您必須提供連接埠號碼,或者也可以啟動 SQL Server Browser 服務。 如需設定 SQL Server Browser 服務的資訊,請參閱 SQL Server Browser 服務。
連線時,SQL Server Native Client 元件會從登錄中讀取指定之別名名稱的伺服器、通訊協定與連接埠值,並以 tcp:<servername>[\<instancename>],<port>
或 tcp:<IPAddress>[\<instancename>],<port>
格式建立連接字串。
注意
根據預設,Windows 防火牆會關閉連接埠 1433。 由於 SQL Server 是透過連接埠 1433 通訊,因此如果 SQL Server 設定為使用 TCP/IP 接聽內送的用戶端連線,您必須重新開啟該連接埠。 如需設定防火牆的相關資訊,請參閱《SQL Server 線上叢書》中的<操作說明:設定防火牆供 SQL Server 存取>,或請檢閱您的防火牆文件集。
SQL Server 和 SQL Server Native Client 完整支援網際網路通訊協定第 4 版 (IPv4) 與網際網路通訊協定第 6 版 (IPv6)。 SQL Server 組態管理員可以接受 IPv4 和 IPv6 格式的 IP 位址。
TCP/IP 別名設定的範例
使用伺服器名稱連線
別名名稱: <serveralias>
連接埠號碼: <blank>
通訊協定: TCP/IP
伺服器: <servername>
使用伺服器名稱連接到具名執行個體
別名名稱: <serveralias>
連接埠號碼: <blank>
通訊協定: TCP/IP
伺服器: <servername>\<instancename>
使用伺服器名稱來連接指定的連接埠
別名名稱: <serveralias>
連接埠號碼: <port number>
通訊協定: TCP/IP
伺服器: <servername>
使用 IP 位址來連線
別名名稱: <serveralias>
連接埠號碼: <blank>
通訊協定: TCP/IP
伺服器: <IPAddress>
注意
如需指定網路通訊協定作為 sqlcmd 參數的資訊,請參閱sqlcmd - 連線到資料庫引擎。
具名管道連線
除非使用者變更,否則 Microsoft SQL Server 的預設執行個體在具名管道通訊協定上接聽時,會使用 \\.\pipe\sql\query
作為管道名稱。 期間表示電腦是本機電腦。 pipe
表示連線是具名管道,而 sql\query
是管道的名稱。 若要連線到預設管道,別名必須具有 \\<computer_name>\pipe\sql\query
作為管道名稱。 如果 SQL Server 已設定為在不同的管道上接聽,管道名稱必須使用該管道。 例如,如果 SQL Server 使用 \\.\pipe\unit\app
作為管道,別名必須使用 \\<computer_name>\pipe\unit\app
作為管道名稱。
若要使用有具名管道的別名連線到 SQL Server,您必須:
指定 別名名稱。
選取具名管道作為通訊協定
輸入管道名稱。 或者,您可以將 [管道名稱] 保留空白,SQL Server 組態管理員會在指定 [通訊協定] 和 [伺服器] 之後完成適當的管道名稱。
指定伺服器。 針對具名執行個體,您可以提供伺服器名稱和執行個體名稱。
連線時,SQL Server Native Client 元件會從登錄中讀取指定之別名名稱的伺服器、通訊協定與管道名稱值,並以 np:\\<computer_name>\pipe\<pipename>
或 np:\\<IPAddress>\pipe\<pipename>
格式建立管道名稱。 針對具名執行個體,預設管道名稱為 \\<computer_name>\pipe\MSSQL$<instance_name>\sql\query
。
注意
根據預設,Microsoft Windows 防火牆會關閉連接埠 445。 由於 Microsoft SQL Server 是透過連接埠 445 來進行通訊,因此如果 SQL Server 設定為使用具名管道來接聽內送的用戶端連線,您就必須重新開啟該連接埠。
命名管道別名設定的範例
依伺服器名稱連線到預設管道
別名名稱: <serveralias>
管道名稱: <blank>
通訊協定: Named Pipes
伺服器: <servername>
依 IP 位址連線到預設管道
別名名稱: <serveralias>
管道名稱: <blank>
通訊協定: Named Pipes
伺服器: <IPAddress>
依伺服器名稱連線到非預設管道
別名名稱: <serveralias>
管道名稱: \\<servername>\pipe\unit\app
通訊協定: Named Pipes
伺服器: <servername>
使用伺服器名稱連接到具名執行個體
別名名稱: <serveralias>
管道名稱: \\<servername>\pipe\MSSQL$<instancename>\SQL\query
通訊協定: Named Pipes
伺服器: <servername>
驗證連接通訊協定
下列查詢會傳回目前連接所使用的通訊協定。
SELECT net_transport
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;