将 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 身份验证
使用Python通过Windows身份验证连接到MS SQL Server?
SQLSERVER2008R WINDOWS身份验证与SA验证都无法登录 WINDOWS 8.0系统,找不到SQL SERVER 2008配置器