You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#连接独立根服务器SQL Server远程数据库失败求助

解决远程SQL Server连接失败的问题

看起来你踩了远程SQL Server连接里两个常见的坑:身份验证方式错误和连接字符串配置问题,我给你一步步拆解解决:

核心问题分析

你现在用的computername\Administrator是根服务器本地的Windows管理员账户,这种本地机器账户没法直接用于远程SQL Server连接——除非你的本地电脑和根服务器在同一个域或者有信任关系,但你是独立根服务器,所以SQL Server根本没法验证这个账户的合法性,这是连接失败的主要原因。

具体解决方案

1. 在远程SQL Server上创建SQL身份验证账户

别用Windows账户了,改用SQL专属登录账户:

  • 打开SQL Server Management Studio(SSMS),连接到你的根服务器SQL实例。
  • 展开安全性 -> 登录名,右键选择「新建登录名」。
  • 选择「SQL Server身份验证」,设置一个登录名(比如RemoteDbUser)和密码,建议取消勾选「强制密码过期」(方便测试)。
  • 切换到「用户映射」标签,勾选你要访问的数据库db_name,给这个账户分配合适的权限(比如db_owner或者读写权限,根据你的需求来)。
  • 点击确定完成创建。

2. 修改你的C#连接字符串

把原来的连接字符串改成SQL身份验证格式,还要加上端口号(避免端口找不到的问题):

Data Source=root_ip_adress,1433;Initial Catalog=db_name;User Id=RemoteDbUser;Password=你的SQL账户密码;

⚠️ 注意:

  • 一定要加上,1433(这是SQL Server默认端口,如果你改了自定义端口就填实际端口),很多远程连接失败都是因为没指定端口。
  • 确保连接字符串里没有Integrated Security=True这个参数,它会强制使用Windows身份验证,直接忽略你填的User Id和Password。

3. 最后检查几个关键配置

  • 确认TCP/IP协议启用:打开SQL Server配置管理器,找到「SQL Server网络配置」-> 你的实例的协议,确保「TCP/IP」是启用状态,并且IP地址里的TCP端口设置正确。
  • 防火墙开放端口:在根服务器的防火墙里,添加入站规则,开放1433端口(或你用的自定义端口),允许本地电脑的IP访问。
  • 再次确认远程连接权限:在SSMS里右键你的服务器 -> 属性 -> 连接,确保「允许远程连接到此服务器」已经勾选(你说已经启用了,但再检查一遍准没错)。

为什么原来的连接字符串不行?

你用的computername\Administrator是根服务器本地的Windows账户,远程连接时SQL Server无法验证这个来自外部的本地账户身份,再加上可能没指定端口,就触发了「服务器找不到或无法访问」的报错。改用SQL身份验证后,账户是存在于SQL Server内部的,就能正常验证了。

内容的提问来源于stack exchange,提问作者Mendax M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:14:53