将 SQL Server 身份验证与 localdb 一起使用

Posted

技术标签:

【中文标题】将 SQL Server 身份验证与 localdb 一起使用【英文标题】:Using SQL Server authentication with localdb 【发布时间】:2022-01-02 16:26:08 【问题描述】:

我有一个 Web 应用 (SPA),其中 React 作为前端,ASP.NET Core 作为后端。使用带有 Windows 身份验证的 SQL Server 2017 localdb 在我的桌面上运行良好。

我想使用带有用户名和密码的 SQL Server 身份验证,因为该应用程序将分布在不同位置的客户端之间,并且我们希望限制用户直接访问数据库以实现我们的业务逻辑。

连接字符串嵌入在datacontext.cs文件中的C#代码中,因此他们可能无法访问他们机器上的数据库数据。

用户应该无法使用 Windows 身份验证(这不是预期的)使用 SQL Server Management Studio (SSMS) 连接到数据库。

在连接字符串中使用 SQL Server 身份验证会导致错误

用户登录失败...

有些朋友建议使用 SQL Server Express 版本和“混合模式”即 SQL Server 和 Windows 身份验证而不是 localdb 来解决问题。

提前感谢您的帮助。

【问题讨论】:

连接字符串嵌入在datacontext.cs文件中的c#代码中,这样他们就无法访问他们机器上的数据库数据。嗯,这不安全。任何拥有 .NET Reflector 或 dotPeek 的人都可以毫不费力地看到这一点,或者使用 strings 命令的 WSL 用户。 嗨@AlwaysLearning 感谢您指出安全漏洞。所以我尝试使用在线注册或其他方法解决。 【参考方案1】:

有朋友建议使用 SQL Server Express 版和“混合模式”即 SQL Server 和 Windows 身份验证

听你的朋友的话。 “使用用户名和密码的 SQL Server 身份验证”被禁用,除非您 Change the Server Authentication Mode

【讨论】:

以上是关于将 SQL Server 身份验证与 localdb 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

为 asp.net 应用程序连接 sql server(Windows 身份验证与 SQL Server 身份验证)的最佳方式

通过 Tomcat 的 SQL Server Windows 身份验证

从 SQL Server 数据库登录身份验证

使用Python通过Windows身份验证连接到MS SQL Server?

如何采用SQL Server身份验证登录

SQLSERVER2008R WINDOWS身份验证与SA验证都无法登录 WINDOWS 8.0系统,找不到SQL SERVER 2008配置器