【问题标题】:Proper DB access authentication正确的数据库访问身份验证
【发布时间】:2012-05-01 16:04:45
【问题描述】:

我们正在开发一个简单的 web 应用程序,该应用程序将在我们的 Intranet 上提供。对应用程序的访问将通过“用户”表进行控制:如果表中存在您的网络登录信息,则您可以使用该应用程序。

应用程序本身将使用 SQL 数据库。在我们当前的开发设置中,我们都是开发数据库的管理员,因此我们拥有完全的访问权限。但是,当它部署到生产环境时,我们有几个选项可用于对数据库进行身份验证。

向每个适当的用户授予他或她自己的数据凭据是否有意义,或者所有用户都应该在数据库上共享一个应用程序级用户帐户?

【问题讨论】:

  • 您不能将用户添加到不同的角色并根据角色授予访问权限吗??
  • 你需要跟踪每个用户对数据库执行的操作还是你不关心?

标签: c# asp.net .net sql-server authentication


【解决方案1】:

根据我的经验,为每个应用用户创建单独的用户帐户会使事情变得复杂。如果没有您必须设计的安全规范,我将为应用创建单一登录,创建数据库角色,向角色授予权限,然后将登录添加到角色。

如果您通过将用户名作为输入参数传递给存储过程来使用此方法,您仍然可以审核用户操作。

【讨论】:

    【解决方案2】:

    每个用户的访问凭据将导致除了最小的用户群之外的所有用户群都是一场后勤噩梦。在 Web 环境中,它也使事情变得非常复杂。

    我见过(并使用过的)最常见的方法是为每个应用程序使用一个专用用户。所有访问都通过该用户名/密码进行。

    您的应用程序将在任何情况下执行授权,因此您可以根据需要审核执行各种操作的用户名。

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 2016-06-25
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      相关资源
      最近更新 更多