SSMS 登錄框的有效連接字元串是什麼?
SSMS 登錄框的有效連接字元串是什麼?
每隔一段時間,我就必須連接到具有某些特定配置設置的 SQL Server 實例,或者連接到沒有可用主機名的 DMZ 中,或者我必須通過 SSMS 或 SQLCMD 連接到專用管理員連接 (DAC) . 因為我很少通過特定埠或使用 DAC 連接到 SQL Server,所以我往往會忘記建立和執行連接的確切語法選項。然後,我將不得不無數次再次搜尋網際網路以檢索確切的連接字元串,並且經常會因為找不到所需的資訊而感到沮喪。
研究
我將閱讀之前發佈在 Serverfault、Stackoverflow 和 DBA 上的所有問題和答案。
伺服器故障
$$ 1 $$ DAC 連接埠 SQL Server 2005 SP3
$$ 2 $$ 遠端 SQL 伺服器連接失敗
$$ 3 $$ SQL Server 2008 R2 遠端連接 堆棧溢出
$$ 4 $$ 如何在 SQL Server 連接字元串中指定埠號? 數據庫管理員
$$ 5 $$ DAC 連接錯誤 微軟
此外,我將在 Microsoft 網站上搜尋相關文章:
$$ 6 $$ 如何配置 SQL Server 以偵聽特定埠
$$ 7 $$ 將 Windows 防火牆配置為允許 SQL Server 訪問
$$ 8 $$ 表面積配置
$$ 9 $$ 如何配置 SQL Server 以偵聽不同 IP 地址上的不同埠?
$$ 10 $$ 將伺服器配置為偵聽特定 TCP 埠(SQL Server 配置管理器)
$$ 11 $$ 數據庫管理員的診斷連接 布倫特奧扎
Kendra Little 有一篇關於 DAC 一些有趣方面的文章。
$$ 12 $$ 專用管理員連接:為什麼需要它、何時需要它以及如何判斷誰在使用它 附帶說明:有時 DAC 連接也稱為 ADMIN 連接。
我發現最後從來沒有一個簡單的連接字元串的實際摘要輸入到 SSMS 登錄框,也沒有添加到 SQLCMD 的內容。
這個問題和以下答案旨在總結我迄今為止發現的內容,並將資訊放入一篇知識庫文章中。
實際問題
給定 SQL Server Standard Edition 的以下設置:
Servername.....: SERVERNAME IP address.....: 123.1.2.3 1st instance (default instance): CNAME/Alias....: SERVERNAME-I01 Name...........: MSSQLSERVER Port...........: 1433 (TCP) IP address.....: 123.1.2.3 DAC Port.......: 1434 (TCP) 2nd instance (default ip & port configuration according to [7]): CNAME/Alias....: SERVERNAME-I02 Name...........: Instance2 Port...........: dynamic (TCP) IP address.....: 123.1.2.3 DAC port.......: dynamic (TCP) 3rd instance (dedicated IP and port): CNAME/Alias....: SERVERNAME-I03 Name...........: Instance3 Port...........: 1433 (TCP) IP address.....: 123.1.2.4 DAC port.......: dynamic (TCP) Browser Service: 1434 (UDP) Browser service: ON
…我可以在 SSMS 登錄框中輸入的每個實例的有效連接字元串是什麼
- …與主機名?
- …別名(CNAME)?
- …有一個IP地址?
- …對於“專用管理員連接”(DAC aka ADMIN :)?
假設
有多種可能性,我將嘗試根據編號的問題來回答它們。
SSMS 登錄框的有效連接字元串為:
一審
- 使用主機名
SERVERNAME
SERVERNAME,1433
- 使用 CNAME/別名
SERVERNAME-I01
SERVERNAME-I01,1433
- 使用 IP 地址
123.1.2.3
123.1.2.3,1433
- 對於專用管理員連接 (DAC);取決於瀏覽器服務狀態
a) 瀏覽器服務開啟
ADMIN:SERVERNAME
ADMIN:SERVERNAME-I01
ADMIN:123.1.2.3
b) 瀏覽器服務關閉
SERVERNAME,1434
SERVERNAME-I01,1434
123.1.2.3,1434
第二次
因為第二個實例有一個用於 SQL Server 實例的動態埠和一個用於 DAC 的動態埠,所以在連接到 SQL Server 之前,必須提前從 ERROR 日誌文件中檢索這些埠。有關詳細資訊,請參見7。在此範例中,我將假設埠 63390 用於 SQL Server 實例,埠 63389 用於專用管理員連接。Microsoft 建議修復 IP 埠,從而允許您正確配置防火牆6。
- 使用主機名
SERVERNAME\Instance2
(瀏覽器服務開啟)SERVERNAME,63390
(瀏覽器服務關閉)
- 使用 CNAME\別名
SERVERNAME-I02
(瀏覽器服務開啟)SERVERNAME-I02,63390
(瀏覽器服務關閉)
- 使用 IP 地址
123.1.2.3,63390
(瀏覽器服務打開或關閉)使用不帶埠的 IP 地址,會將您連接到預設實例 4. 對於專用管理員連接 (DAC);真的取決於瀏覽器服務狀態
a) 瀏覽器服務開啟
ADMIN:SERVERNAME\Instance2
ADMIN:SERVERNAME-I02\Instance2
ADMIN:123.1.2.3\Instance2
始終需要實例名稱,因為 CNAME 或 IP 地址引用與預設標準實例相同的 IP 地址b) 瀏覽器服務關閉
SERVERNAME,63389
SERVERNAME-I01,63389
123.1.2.3,63389
第三次
- 使用主機名
SERVERNAME\Instance3
由於此實例使用與預設實例相同的 SQL Server 埠,但 IP 地址不同,因此該
SERVERNAME,1433
表示法不起作用。您將連接到預設實例。 2. 使用 CNAME/別名
SERVERNAME-I03
(瀏覽器服務開啟)SERVERNAME-I03,1433
(瀏覽器服務關閉)
- 使用 IP 地址
123.1.2.4
123.1.2.4,1435
- 對於專用管理員連接 (DAC);取決於瀏覽器服務狀態
a) 瀏覽器服務開啟
ADMIN:SERVERNAME\Instance3
ADMIN:SERVERNAME-I03
(有效,因為 CNAME 引用了專用 IP 地址)
ADMIN:123.1.2.4
b) 瀏覽器服務關閉
SERVERNAME,63389
(有效,因為埠引用了 DAC 的專用埠)
SERVERNAME-I01,63389
(因為 CNAME 和埠引用了專用實例/DAC,所以有效)
123.1.2.4,63389
瀏覽器服務
如果瀏覽器服務已禁用或尚未啟動,則無法將連接路由到相關埠。在這種情況下,必須從實例的 ERRORLOG 文件中檢索 DAC 埠。您應該會找到一條類似Dedicated admin connection support was established 用於在埠 63389 上遠端偵聽的行。對於 DAC 埠。此埠號是 DAC 將偵聽的埠。如果您的瀏覽器服務已關閉,您需要為專用管理員連接提供相關埠,並為 SQL Server 連接提供相應埠。使用埠時不必將實例名稱添加到連接字元串,因為該埠是為實例保留的。
簡而言之,瀏覽器服務負責將實例名稱轉換為埠。如果瀏覽器服務沒有執行,那麼您必須提供埠而不是實例名稱。
參考資料
- 登錄到 SQL Server(Microsoft | Docs | SQL Server)