【问题标题】:using sql server security roles in ASP.net在 ASP.net 中使用 sql server 安全角色
【发布时间】:2011-03-21 13:53:01
【问题描述】:

我正在构建一个使用 Windows 身份验证的 Intranet(带有 asp.net c#)应用程序。 在我的应用程序中将有三个角色。并且这三个角色在与之连接的sql server 2008中会有不同的权限。

在 sql server 2008 中,我计划创建 3 个不同的安全角色,它们在数据库中具有不同的用户权限。即他们将对数据库中的不同表具有不同的读写权限。

我的问题是,我有没有办法将应用程序角色映射到 sql server 角色?

我确实对此进行了一些研究,但我发现的信息更多的是关于“创建 sqlserviceprovider”......这并不是我想要的。

任何建议,建议都将受到欢迎。

谢谢 阿德里安

【问题讨论】:

    标签: c# asp.net sql visual-studio sql-server-2008


    【解决方案1】:

    我不确定它是如何在 MS SQL Server 上完成的,但一般来说,应用程序用户的面向应用程序的安全角色与数据库用户无关。通常我看到的情况是为应用程序创建一个用于建立连接的数据库用户,然后与安全性相关的所有其他内容都通过“用户权限”表处理,该表告诉应用程序不同的应用程序用户具有哪些权限。可能可以将应用程序用户直接映射到数据库用户,但我曾经听到它建议并看到房间里的两个 DBA 都在畏缩......

    【讨论】:

    • 问题是,我确实想为我的应用程序使用 Windows 身份验证,但不是为我的 sql 服务器。所以这意味着我必须为我的应用程序中的角色创建自己的 sql 用户帐户。如果是这样的话,那么我将不得不在我的应用程序中存储 sql 用户名和密码......我不确定这是一个好习惯......除非我使用 aspnet_regiis 对其进行加密。这是一个好方法还是有更好的方法?
    • @AJ17:我认为可以对应用程序使用 Windows 身份验证,并且仍然拥有我描述的数据库权限,但我现在不确定,抱歉。 :(
    • 无论如何谢谢..如果一些高级成员可以分享他们的经验会很好:)
    【解决方案2】:

    @FrustratedWithFormsDes 说了什么。

    但是,如果你必须做这样的事情,你也许可以使用 SQL Server 的应用程序角色来破解一些东西。这是一个冗长且涉及的话题,因此简要概述是:您可以使用(SQL)应用程序角色+密码来重置当前数据库用户的权限和特权(即重置SQL的权限登录一个数据库)。更高版本(肯定是 2008 年)允许您“注销”应用角色登录,然后以不同的应用角色重新登录。

    但是请注意,如果您使用连接池,应用程序角色可能真的搞砸了。

    有关详细信息,请查看联机丛书中的应用程序角色(错误,在线 here),谷歌搜索“SQL Server 应用程序角色”会找到任意数量的文章。

    【讨论】:

      猜你喜欢
      • 2013-07-01
      • 2010-10-26
      • 2011-12-19
      • 1970-01-01
      • 2012-03-18
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      相关资源
      最近更新 更多