无法使用 sa 帐户连接到 SQL Server

Cannot connect to SQL Server using sa account

提问人:Edward Mansfield 提问时间:10/25/2023 最后编辑:Edward Mansfield 更新时间:10/26/2023 访问量:38

问:

我有一个小应用程序,它使用连接字符串中指定的用户 ID/密码连接到本地 SQL Server 2022 Express 实例。我使用的用户 ID/密码是帐户。这总是会导致错误:sa

提供程序:共享内存提供程序,错误:0 - 管道错误的另一端没有进程。

连接字符串为:

`"metadata=res:///Models.PBFansLibrary.csdl|res:///Models.PBFansLibrary.ssdl|res:///Models.PBFansLibrary.msl;provider=System.Data.SqlClient;provider connection string="data source=SSSS;initial catalog=PBFansLibrary_02_05_02;Integrated Security=False;User ID=sa;Password=PPPP;multipleactiveresultsets=True;App=EntityFramework"" 
providerName="System.Data.EntityClient"`

我能够通过运行 Windows Server 2022 的本地机器上的 SSMS 连接到服务器,使用 SQL Server 身份验证没有问题,但应用程序不断收到错误。服务器 ID 的所有变体都在 SSMS 中工作,但它们都会导致我的应用中出现相同的错误。sa

SQL Server 引擎配置为命名管道和 TCP/IP 连接(即,两者都在 Configuration Manager 中启用)。

有人可以告诉我为什么 SSMS 可以连接,但我的应用不能?

使用 SQL Server 2022 开发人员版,同一应用在我的本地 Windows 11 开发平台上运行良好。

更新:

我在每台服务器上都创建了一个普通用户帐户,它现在可以在本地工作,但仍然无法使用普通用户帐户连接到远程服务器。 我尝试连接到的远程服务器正在运行 SQL Server 2008 R2,但这似乎不会影响 SSMS。我还尝试在服务器 ID 前面加上“tcp:”,这会调用 TCP/IP 连接方法。相同的结果。

sql-server SSMS 数据库连接 SA

评论

1赞 marc_s 10/26/2023
通常建议不要将该帐户用于任何编程 - 使用单独的、特定于应用程序且具有适当权限的系统帐户 - 但不要使用 ....sasa
0赞 Xedni 10/26/2023
我假设当您在 SSMS 中测试它时,您使用的是相同的 sa 帐户,而不是 Windows 身份验证?
0赞 AlwaysLearning 10/26/2023
好吧,错误消息告诉您原因:它正在尝试使用 .如果将连接字符串更改为使用 TCP/IP 客户端协议,会发生什么情况,例如: ?Shared Memory Providerdata source=tcp:SSSS;
0赞 Edward Mansfield 10/26/2023
是的,在 SSMS 中使用 sa 帐户。
0赞 Edward Mansfield 10/26/2023
更改为使用普通用户帐户,但仍无法连接到远程服务器。它在本地使用普通用户帐户工作。

答: 暂无答案