当前位置: 首页 > news >正文

Sqlserver安全篇之_隐藏实例功能和禁用SQL Server Browser服务

总结:
1、隐藏实例功能和禁用SQL Server Browser服务的功能一样,对应非默认实例(且这个默认实例是1433端口)的情况下,都是需要在连接字符串中提供端口号才能连接到实例
2、隐藏实例功能后,就算开启了SQL Server Browser服务,SQL Server Browser服务也无法识别计算机上的所有SQL Server实例的端口和命名管道

隐藏实例
https://learn.microsoft.com/zh-cn/sql/database-engine/configure-windows/hide-an-instance-of-sql-server-database-engine?view=sql-server-ver16
Sql Server Configuration Manager–SQL Server Network Configuration–Right-click Protocols for MSSQLSERVER–Properties–Flags–Hide Instances–Yes

实验环境:testdb1服务器上2个实例,一个默认实例端口1433,一个命名实例test端口49344,SQL Server Browser服务正常运行的情况下

不隐藏实例
默认实例和命名实例的SPN都正常,在远程服务器使用SSMS输入testdb1可以正常连接默认实例也可以输入testdb1\test或testdb1,49344或testdb1\test,49344正常连接命名实例

隐藏实例
默认实例和命名实例的SPN都正常,在远程服务器使用SSMS输入testdb1可以正常连接默认实例也可以输入testdb1,4934或testdb1\test,49344正常连接命名实例,但是输入testdb1\test无法正常连接命名实例,也就是说遇到非1433端口的命名实例时必须写明端口的方式才可以正常连接命名实例

不管隐藏实例的功能是否打开
如果把默认实例的端口从1433改成1439,且默认实例的SPN正常,在远程服务器使用SSMS输入testdb1都不可以正常连接默认实例,必须输入testdb1,1439才可以正常连接默认实例testdb1。

隐藏实例功能:如果启用这个功能,那么只有默认实例且该默认实例必须是默认端口的情况下,远程服务器使用SSMS时可以在不输入端口的情况下就可以正常连接默认实例,其他非默认实例或非默认端口(含默认实例名)的实例,远程服务器使用SSMS时都必须写明端口的情况下才可以正常连接。

官方文档中关于隐藏实例的总结:SQL Server 使用 SQL Server 浏览器服务来枚举安装在计算机上的 数据库引擎 实例。 这使客户端应用程序可以浏览服务器,并帮助客户端区别同一台计算机上的多个数据库引擎实例。 你可以使用隐藏SQL Server 数据库引擎实例的方式来防止SQL Server Browser服务识别计算机上的所有SQL Server实例。如果你隐藏命名实例,你将需要在连接字符串中提供端口号才能连接到隐藏的实例,即使SQL Server Browser服务正在运行也是如此。

SQL Server Browser
https://learn.microsoft.com/zh-cn/sql/tools/configuration-manager/sql-server-browser-service?view=sql-server-ver16&redirectedfrom=MSDN
SQL Server Browser:Provides SQL Server connection information to client computers.

实验环境:testdb1服务器上2个实例,一个默认实例端口1433,一个命名实例test端口49344

SQL Server Browser服务运行时的状态
默认实例和命名实例的SPN都正常,在远程服务器使用SSMS输入testdb1可以正常连接默认实例也可以输入testdb1\test或testdb1,49344或testdb1\test,49344正常连接命名实例

关闭SQL Server Browser服务后
默认实例和命名实例的SPN都正常,在远程服务器使用SSMS输入testdb1可以正常连接默认实例也可以输入testdb1,4934或testdb1\test,49344正常连接命名实例,但是输入testdb1\test无法正常连接命名实例,也就是说遇到非1433端口的命名实例时必须写明端口的方式才可以正常连接命名实例

不管SQL Server Browser服务是运行还是关闭
如果把默认实例的端口从1433改成1439,且默认实例的SPN正常,在远程服务器使用SSMS输入testdb1都不可以正常连接默认实例,必须输入testdb1,1439才可以正常连接默认实例testdb1。

SQL Server Browser服务:如果关闭这个服务,那么只有默认实例且该默认实例必须是默认端口的情况下,远程服务器使用SSMS时可以在不输入端口的情况下就可以正常连接默认实例,其他非默认实例或非默认端口(含默认实例名)的实例,远程服务器使用SSMS时都必须写明端口的情况下才可以正常连接。

官方文档中关于SQL Server Browser的总结: 在启动后,SQL Server Browser将启动并使用UDP 1434端口, SQL Server Browser将读取注册表,识别计算机上的所有SQL Server实例,并注明它们使用的端口和命名管道。当SQL Server客户端请求SQL Server资源时,客户端将使用1434端口向服务器发送一条UDP消息。 SQL Server Browser将用请求的实例的TCP/IP端口或命名管道做出响应。 然后,客户端应用程序将使用所需实例的端口或命名管道向服务器发送请求来完成连接。当SQL Server Browser服务不运行时,如果提供了正确的端口号或命名管道,仍可以连接到 SQL Server。

相关文章:

  • 银河麒麟高级服务器操作系统通用rsync禁止匿名访问操作指南
  • 【STL专题】优先级队列priority_queue的使用和模拟实现,巧妙利用仿函数解决优先级
  • wifi5和wifi6,WiFi 2.4G、5G,五类网线和六类网线,4G和5G的区别
  • 本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面
  • windows中kafka集群部署示例
  • PHP 连接 Memcached 服务
  • Redis持久化机制与数据恢复
  • PHP入门基础学习三(PHP基本语法)
  • 【音视频】音视频录制、播放原理
  • 网络安全学习-WEB安全常见漏洞
  • 1.介绍一下TCP/IP模型和OSI模型的区别【中高频】
  • ubuntu22.04 如何扩根目录空间,当空间不够时
  • C++---了解STL
  • Github 2025-02-25 Python开源项目日报 Top10
  • Metal 学习笔记三:渲染管线
  • Chromedriver与Chrome版本映射表
  • 机器视觉--相机曝光
  • HITCON2017SSRFME-学习复盘
  • 【大语言模型】【整合版】DeepSeek 模型提示词学习笔记(散装的可以看我之前的学习笔记,这里只是归纳与总结了一下思路,内容和之前发的差不多)
  • Day8 蓝桥杯acw讲解
  • 联合国报告:全球经济前景恶化,面临高度不确定性
  • 缅甸内观冥想的历史漂流:从心理治疗室到“非语言现场”
  • 病重老人被要求亲自取钱在农业银行门口去世?株洲警方介入
  • 经常口干口渴的人,要当心这些病
  • 上海虹桥国际咖啡文化节周五开幕,来看Coffeewalk通关攻略
  • “异常”只停留在医院里,用艺术为“泡泡宝贝”加油