gpt4 book ai didi

c# - 如何将基于 SQL Server 身份验证的应用程序切换为基于 Windows 的身份验证应用程序?

转载 作者:行者123 更新时间:2023-11-30 12:46:49 25 4
gpt4 key购买 nike

我开发了一个使用 SQL Server 身份验证连接到数据库的应用程序。安装设置要求管理员凭据(用于 SQL 服务器身份验证)并创建一个新用户(特定于应用程序)。安装程序仅需要管理员凭据才能创建特定用户。安装程序还会创建一个数据库并将此数据库映射到新创建的用户。现在要求更改以支持 MIXED 模式身份验证(Windows 和 SQL 服务器)。这意味着,安装设置将有选择 Windows 模式或 SQL 模式的选项。用户可以选择 Windows 或 SQL。如果选择 SQL,她将必须提供用户名和密码。我的问题是:

1- 如果用户选择 WINDOWS 模式,我是否需要创建特定于应用程序的用户?如果是,请指导如何创建新用户。

2- 在整个应用程序中,我使用了带有“用户名”(安装程序安装时创建的应用程序特定用户)和“密码”的连接字符串。我是否需要创建另一个连接字符串来达到目的?

最佳答案

[1] 不,你不必这样做。你可以,它会起作用,但这不是必需的。在 Windows 身份验证中,该过程将向当前运行代码的用户的 SQL 服务器提供凭据。在大多数情况下,这将是启动流程的用户。如果需要,您可以更改每个线程的用户,请参阅 Thread.CurrentPrincipal .但我建议不要这样做,因为这会使事情变得非常复杂。

在大多数情况下,您将应用程序部署为服务、Windows 服务或 IIS 应用程序。然后它在特定的 Windows 系统帐户下运行,您必须在 SQL 服务器上允许这些帐户。

如果您不使用 Windows 系统帐户,您将面临密码过期、安全存储密码、未经授权使用用户名运行其他可执行文件等问题。

向 Windows 添加用户很简单,只需搜索:如何向 Windows [版本版] 添加用户帐户,但首先考虑使用系统帐户(例如 Local Service、Network Service ).

[2] 我建议重构您的应用程序,以便您通过名称引用连接字符串。


您可能希望将配置管理与可执行文件分开。 IE。一个应用程序准备配置,另一个应用程序使用它。例如,安装程序写入配置字符串,应用程序使用配置字符串,应用程序不关心里面的内容,只要它允许访问数据库即可。

关于c# - 如何将基于 SQL Server 身份验证的应用程序切换为基于 Windows 的身份验证应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com