Joh*_* N. 6 sql-server ssms sqlcmd connectivity
SSMS 登录框的有效连接字符串是什么?
每隔一段时间,我将不得不连接到具有某些特定配置设置的 SQL Server 实例或在没有可用主机名的 DMZ 中,或者我将不得不通过 SSMS 或 SQLCMD 连接到专用管理连接 (DAC) . 因为我很少通过特定端口或使用 DAC 连接到 SQL Server,所以我往往会忘记启动和运行连接的确切语法选项。然后,我将不得不无数次再次搜索 Internet以检索确切的连接字符串,并且经常会因为找不到所需信息而感到沮丧。
我将阅读之前发布在 Serverfault、Stackoverflow 和 DBA 上的所有问题和答案。
[1] DAC 连接端口 SQL Server 2005 SP3
[2]远程 SQL 服务器连接失败
[3] SQL Server 2008 R2 远程连接
[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 标准版的以下设置:
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
Run Code Online (Sandbox Code Playgroud)
...我可以在 SSMS 登录框中输入的每个实例的有效连接字符串是什么
有多种可能性,我将尝试根据编号的问题来回答它们。
SSMS 登录框的有效连接字符串为:
SERVERNAME SERVERNAME,1433SERVERNAME-I01 SERVERNAME-I01,1433123.1.2.3 123.1.2.3,1433对于专用管理连接 (DAC);取决于浏览器服务状态
a) 浏览器服务开启
ADMIN:SERVERNAMEADMIN:SERVERNAME-I01ADMIN:123.1.2.3 b) 浏览器服务关闭
SERVERNAME,1434SERVERNAME-I01,1434123.1.2.3,1434 由于第二个实例具有用于 SQL Server 实例的动态端口和用于 DAC 的动态端口,因此在连接到 SQL Server 之前必须提前从错误日志文件中检索端口。请参阅7了解更多信息。在此示例中,我假设端口 63390 用于 SQL Server 实例,端口 63389 用于专用管理连接。Microsoft 建议修复 IP 端口,从而允许您正确配置防火墙6。
SERVERNAME\Instance2(浏览器服务开启)SERVERNAME,63390(浏览器服务关闭)SERVERNAME-I02(浏览器服务开启)SERVERNAME-I02,63390(浏览器服务关闭)123.1.2.3,63390(浏览器服务打开或关闭)对于专用管理连接 (DAC);确实取决于浏览器服务状态
a) 浏览器服务开启
ADMIN:SERVERNAME\Instance2ADMIN:SERVERNAME-I02\Instance2 ADMIN:123.1.2.3\Instance2b) 浏览器服务关闭
SERVERNAME,63389SERVERNAME-I01,63389 123.1.2.3,63389 使用主机名
SERVERNAME\Instance3SERVERNAME,1433表示法不起作用。您将连接到默认实例。使用 CNAME/别名
SERVERNAME-I03(浏览器服务开启)SERVERNAME-I03,1433(浏览器服务关闭)使用IP地址
123.1.2.4 123.1.2.4,1435对于专用管理连接 (DAC);取决于浏览器服务状态
a) 浏览器服务开启
ADMIN:SERVERNAME\Instance3ADMIN: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 端口。对于 DAC 端口,您应该会找到一条类似于Dedicated admin Connection support wasbuilt for Listening Remote on port 63389. 的行。该端口号是 DAC 将侦听的端口。如果您的浏览器服务已关闭,您需要为专用管理连接提供相关端口,并为 SQL Server 连接提供相应的端口。使用端口时不必将实例名称添加到连接字符串中,因为该端口是为实例保留的。
简而言之,浏览器服务负责将实例名称转换为端口。如果浏览器服务未运行,则您必须提供端口而不是实例名称。