gpt4 book ai didi

c# - 将用户身份附加到 SQL Server 连接

转载 作者:行者123 更新时间:2023-11-30 17:53:32 24 4
gpt4 key购买 nike

我们有一个应用程序使用 SQL Server 登录名(而非 AD)对数据库进行身份验证。这是一个单一的通用帐户,因此如果我们有 100 个用户登录,则他们创建的所有连接都具有与其关联的相同用户名。

这对我们要用来监视服务器上不当或错误行为的一些审计工具提出了挑战(它们无法解析用户)。

是否有更好的方法来管理此连接?这是我们的目标:

我们想要授权应用程序访问 SQL 服务器,而不是用户(所以我们不希望用户能够启动 Access 或 Crystal Reports 并开始弄乱数据库,访问应该通过我们的代码).因此,我们避免使用 Integrated Security。

我们希望能够将 SQL Server 上的事件进程关联回启动它的用户

我们需要能够使用 ORM(非常喜欢参数化 SQL 而不是存储过程,所以我们不能只为 AD 帐户指定执行权限)

我所知道的唯一选择是:

  • 将某种特定于用户的元数据附加到连接
  • 每个用户使用一个 SQL Server 登录名
  • 放弃我们连接上的任何用户身份信息

还有我不知道的第 4 个选项吗?

最佳答案

一般方法是将用户名附加到所有写入的记录...通过 FK 审计/历史表或作为表上的列。您的应用程序与数据库对话 - 您的用户没有任何我所知道的“通过”。

另一种选择是在用户使用您的应用程序时获取用户的用户名,并在用户的 session 中放置一个 connectionString/任何使用集成凭据并传入用户名的东西......然后让用户在使用期间使用他们唯一存储的 connectionString他们对应用程序的使用。这应该可行,但您必须在代码中处理 SQLExceptions 以获得权​​限等...我想您无论如何都必须处理。

关于c# - 将用户身份附加到 SQL Server 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240858/

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