SSMS 登录框的有效连接字符串是什么?
每隔一段时间,我就必须连接到具有某些特定配置设置的 SQL Server 实例,或者连接到没有可用主机名的 DMZ 中,或者我必须通过 SSMS 或 SQLCMD 连接到专用管理员连接 (DAC) . 因为我很少通过特定端口或使用 DAC 连接到 SQL Server,所以我往往会忘记建立和运行连接的确切语法选项。然后,我将不得不无数次再次搜索互联网以检索确切的连接字符串,并且经常会因为找不到所需的信息而感到沮丧。
研究
我将阅读之前发布在 Serverfault、Stackoverflow 和 DBA 上的所有问题和答案。
服务器故障
[1] DAC 连接端口 SQL Server 2005 SP3
[2]远程 SQL server 连接失败
[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
SERVERNAME-I01
SERVERNAME-I01,1433
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
(浏览器服务关闭)SERVERNAME-I02
(浏览器服务开启)SERVERNAME-I02,63390
(浏览器服务关闭)123.1.2.3,63390
(浏览器服务打开或关闭)使用不带端口的 IP 地址,会将您连接到默认实例
对于专用管理员连接 (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
表示法不起作用。您将连接到默认实例。使用 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 连接提供相应端口。使用端口时不必将实例名称添加到连接字符串,因为该端口是为实例保留的。
简而言之,浏览器服务负责将实例名称转换为端口。如果浏览器服务没有运行,那么您必须提供端口而不是实例名称。
参考资料