C#控制台程序从共享文件夹运行无法连接SQL Server求助
问题原因分析
- 身份验证委托限制:从网络共享运行程序时,当前Windows账号的凭据无法通过Kerberos委托传递给SQL Server。本地运行是直接用本地账号身份连接,而网络环境下,客户端机器的进程尝试用当前用户身份访问SQL Server,若未配置Kerberos约束委托,就会触发权限拒绝,导致Named Pipes连接失败。
- 网络共享权限不足:网络共享文件夹的权限可能未给执行程序的用户分配足够权限;或者本地机器的本地安全策略中,限制了从网络位置启动的进程访问网络资源的能力(比如"从网络访问此计算机"的权限设置过严)。
- Named Pipes协议配置/防火墙问题:虽然已确认允许远程连接,但SQL Server的Named Pipes协议可能仅绑定了本地地址,未对网络开放;或者客户端与SQL Server之间的防火墙阻止了Named Pipes默认端口(445)的通信。
- 服务器名称解析/实例标识问题:
frpardb9354如果是SQL Server实例名,网络环境中可能需要完整标识(如frpardb9354\SQLEXPRESS);或者客户端无法通过NetBIOS名称解析到服务器,可尝试改用IP地址+端口号(如Data Source=192.168.x.x,1433;...)测试。 - 硬编码账号无效:你尝试关闭集成安全并硬编码账号密码,但SQL Server设置的是Windows身份验证模式,这种模式下SQL Server不接受SQL账号登录,所以这个方法本身就不生效,会被服务器拒绝。
内容的提问来源于stack exchange,提问作者chiraz cheikha
相关产品推荐
相关产品推荐

