代码之家  ›  专栏  ›  技术社区  ›  Yongwei Xing

从asp.net直接访问域中的sql server

  •  0
  • Yongwei Xing  · 技术社区  · 14 年前

    情况是这样的。所有计算机和用户都在同一域中。 我们处在一个领域环境中 . 有一些SQL Server 2005/2008存储数据。域中有一个使用窗口身份验证的ASP.NET站点。现在,我们需要从sql server读取数据,并使用sqldatasource和gridview显示它们。但大多数用户没有直接访问数据库的权限。是否有任何解决方案可以从数据库中获取数据,并在不授予用户权限的情况下将其显示在网站上?

    谨致问候,

    2 回复  |  直到 14 年前
        1
  •  3
  •   Paddy    14 年前

    是-在数据库服务器上创建一个SQL用户,并使用此SQL用户帐户为所有用户(使用其域帐户对系统进行身份验证的用户)访问数据库。

    这是一种非常常见的情况,它允许您轻松地对一个帐户的可用访问进行细化,而不是尝试在SQL Server上管理多个域样式的帐户。

    这里有很多连接字符串选项:

    http://www.connectionstrings.com

    这里还有一篇相当不错的msdn文章:

    http://msdn.microsoft.com/en-us/library/ms998300.aspx

        2
  •  0
  •   Ed Harper    14 年前

    我可能误解了您的问题,但是如果您试图避免的是显式地分别授予每个用户数据库权限,那么您可以通过向一个active directory安全组授予权限来解决这个问题,您需要授予访问权限的所有用户都是该组的成员。各个用户将从组继承权限。

    但是,这里还有一个问题,这可能意味着启用sql身份验证是一个更简单的解决方案。除非在域中启用了kerberos身份验证(或者web服务器与数据库服务器位于同一物理计算机上),否则web服务器将无法将用户的凭据传递到数据库服务器进行身份验证,即所谓的双跳问题。谷歌“视窗双跳”了解更多信息。