让其他人连接本机SQL Server,核心是启用TCP/IP协议、配置防火墙入站规则、确认SQL Server身份验证模式,三者缺一不可。不少开发者在这步卡壳,明明服务开着,同事就是连不上,下文按操作顺序拆解,跟着做就能通。
本地SQL Server怎么让别人连接
先搞清楚场景,你的需求大概率有两种:局域网内同事连你的数据库,或者公网环境远程访问(如云服务器),前者是主流,后者涉及安全策略更多,本文以局域网为例展开,公网差异点会单独标注。
前置准备:确认SQL Server服务状态
右键“此电脑” → 管理 → 服务和应用程序 → 服务,找到 SQL Server (MSSQLSERVER) 和 SQL Server Browser,前者必须正在运行,后者强烈建议设为“自动”并启动,Browser服务负责动态端口解析,很多人没开这个,导致后续步骤全对但就是连不上。
开启SQL Server身份验证模式
打开SSMS(SQL Server Management Studio),用Windows身份登录,右键服务器属性 → 安全 → 服务器身份验证,勾选 “SQL Server和Windows身份验证模式”,这一步不做,对方用 sa 账号登录时会被拒绝,改完需要重启SQL Server服务才能生效,别偷懒跳过重启。
启用TCP/IP协议
打开 SQL Server配置管理器(在开始菜单搜索“SQL Server Configuration Manager”),展开“SQL Server网络配置” → 右键“MSSQLSERVER的协议” → 找到 TCP/IP → 右键启用,然后进入TCP/IP属性 → IP地址选项卡,拉到最底部:
- IPAll 的TCP端口填 1433(SQL Server默认端口,改端口的话后续连接字符串要同步改)。
- 上方每个IP项的“已启用”都设为 是。
- 如果看到“IP地址”为 127.0.0.1 或本机内网IP(如 192.168.x.x),保持不动即可。
完成后重启SQL Server服务,此时配置管理器里能看到TCP/IP状态为“已启用”。
SQL Server 1433端口怎么开放
协议开了,Windows防火墙还得放行,这是被卡住最多的环节,分两步走。
防火墙入站规则添加
打开 控制面板 → Windows Defender防火墙 → 高级设置 → 入站规则,点击“新建规则”:
- 规则类型选“端口”。
- 协议选“TCP”,特定本地端口填 1433。
- 操作选“允许连接”。
- 配置文件三个全勾(域、专用、公用)。
- 名称随意,SQL Server 1433”。
完事在另一台电脑的浏览器地址栏输入 telnet 你本机IP 1433,能连上说明端口通了,若提示telnet不是内部命令,去“启用或关闭Windows功能”里把Telnet客户端勾上。
局域网其他电脑访问SQL Server的验证动作
在同事电脑上用SSMS连接,服务器名称填 你本机的IP地址(cmd里输入ipconfig查,形如192.168.1.108),身份验证选“SQL Server身份验证”,登录名sa,密码输入你设的,能进则大功告成。
如果提示“用户sa登录失败”,多半是密码策略问题,去服务器security里,把sa账号的强制密码过期取消掉,顺便确认账号没有“已禁用”状态。
公网环境连接SQL Server的差异化处理
局域网连通是基本操作,公网访问则要在路由器或云安全组放行,家庭宽带有公网IP的,在路由器管理页面做端口映射,把外网端口的1433转发到本机内网IP的1433,云服务器则在控制台安全组规则里入方向添加TCP 1433端口,注意家庭宽带运营商经常封禁公网入站端口,需要打电话确认。
| 场景 | 网络层配置 | 安全性要求 |
|---|---|---|
| 局域网 | 防火墙入站规则 | 低,内网相对可信 |
| 公网映射 | 路由器端口转发 | 高,必须改默认端口 |
| 云服务器 | 安全组规则 | 高,建议绑定IP白名单 |
SQL Server远程连接配置教程常见坑
下面几个现象基本覆盖了多数连接失败场景,对照排查。
用户名密码正确但报错18456
错误日志提示“Login failed for user ‘sa’”,先检查服务器身份验证模式是否改过并重启,若确认改了,看SQL Server错误日志中具体错误代码,18456后面跟的状态码5表示密码错误,状态码8表示账号禁用,状态码2表示连接请求被拦截。
行业共识认为,18456错误中大约一半案例出在身份验证模式没改干净改完设置忘记重启服务的情况比比皆是。
能ping通但telnet 1433不通
防火墙规则没生效,或者规则加了但是配置文件勾选不对,试试把入站规则里“配置文件”三个全选,或者在控制面板关闭Windows Defender防火墙测试(仅临时测试,测完立即开回)。
所有步骤完成,其他电脑还是连不上
确认你本机的专用网络类型是否为“专用”,右键网络图标 → 属性,把网络配置文件改成专用,有些公司域环境会强制策略,入站规则优先级低于域策略,直接添加规则无效,这时候以管理员身份运行 netsh advfirewall firewall add rule name="SQL" dir=in action=allow protocol=TCP localport=1433 命令强制添加入站规则。
另外检查SQL Server Browser服务,如果服务里显示“正在运行”但连接时仍提示找不到实例,用IP实例名格式连接,168.1.108SQLEXPRESS。
连接成功后的安全加固建议
远程连接打通了,别急着撒手,SQL Server暴露在网络上意味着暴力破解风险随之而来。
基础底线:
- 将sa账号密码改成至少16位且含大小写、数字、特殊字符的组合,或者干脆禁用sa,新建一个专属账号。
- 把默认端口1433改成自定义高位端口(如14333),在SQL配置管理器和防火墙、路由器三处同步修改。
进阶做法:
- 在防火墙入站规则里限定“远程IP地址”范围,仅允许你公司出口公网IP或同事电脑IP访问,操作路径:入站规则属性 → 作用域 → 远程IP地址 → 添加。
日常监控:
- SQL Server日志中经常出现大量登录失败记录,说明有人在尝试暴力破解,用系统自带“审核登录”功能记录成功和失败日志,定期查看。
SQL Server连接配置常见问题解答
Q:怎么让局域网其他电脑访问SQL Server数据库?
A:按照上述步骤依次确认SQL Server Browser服务开启、TCP/IP协议启用、1433端口防火墙放行、SQL Server身份验证模式开启,连接时使用“本机内网IP”作为服务器名称,不要用localhost或电脑名称。
Q:SQL Server 1433端口怎么开放,改了之后连接报错怎么办?
A:端口开放具体操作见上文“入站规则添加”,如果改过默认端口,连接字符串中必须显式指定端口号,168.1.108,14333,报错时先用 netstat -ano | findstr 1433 检查端口是否处于监听状态,没监听说明SQL服务未启动或者TCP/IP配置未生效。
Q:为什么SQL Server开启TCP/IP后别人还是连不上?
A:优先检查防火墙是否拦截了通信,Windows防火墙默认会阻止未入库程序的入站请求,即使TCP/IP协议已启用,此外确认SQL Server Browser服务在运行,且客户端使用的是“IP地址实例名”而非“IP地址”格式连接命名实例。
操作路径和排查逻辑,足够覆盖绝大多数“他人连接本机SQL Server”的场景,核心要点记住:服务开起来、协议启用了、防火墙放行了、身份验证选对了,四步走完,连接自然通。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/745047.html





