隐藏 SQL Server 数据库引擎的实例

适用于:SQL Server

本文介绍如何使用 SQL Server 配置管理器隐藏 SQL Server 中数据库引擎的实例。 SQL Server 使用 SQL Server 浏览器服务来枚举安装在计算机上的 数据库引擎 实例。

此选项使客户端应用程序能够浏览服务器,并帮助客户端在同一台计算机上区分数据库引擎的多个实例。 您可以使用以下过程防止 SQL Server Browser 服务向尝试通过使用 数据库引擎 “浏览” 按钮来查找实例的客户端计算机公开 实例。

使用 SQL Server 配置管理器

  1. 在“SQL Server 配置管理器”中,展开“SQL Server 网络配置”、右键单击“<”,然后选择“>”。

  2. 在“ 标志 ”选项卡上的 “HideInstance ”框中,选择“ ”,然后选择“ 确定 ”关闭对话框。 对于新连接,更改会立即生效。

备注

如果隐藏命名实例,则需要在连接字符串中提供端口号以连接到隐藏实例,即使浏览器服务正在运行。 对于命名隐藏实例,我们建议你使用静态端口而不是动态端口。

有关详细信息,请参阅 配置 SQL Server 以侦听特定 TCP 端口

群集

如果隐藏群集实例或可用性组名称,群集服务可能无法连接到 SQL Server。 这会导致群集实例 IsAlive 检查失败,SQL Server 脱机。

为了避免这种情况,请在群集实例的所有节点或承载可用性组副本的所有实例中创建别名,以反映为实例配置的静态端口。 例如,在具有两个副本的可用性组上,在节点 1 上为节点 2 实例创建一个别名,如 node-two\instancename。 在节点 2 上,创建一个名为 node-one\instancename 的别名。 成功故障转移需要别名。

有关详细信息,请参阅 创建或删除服务器别名供客户端使用

如果隐藏群集命名实例,如果 LastConnect 注册表项 (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect) 的端口与 SQL Server 侦听的端口不同,群集服务可能无法连接到 SQL Server。

如果群集服务无法与 SQL Server 建立连接,可能会看到类似于以下内容的错误:

Event ID: 1001: Event Name: Failover clustering resource deadlock.