情况如下。所有机器和用户都在同一个域中。我们处于域环境。有一些sql server 2005/2008存储数据。域中有一个使用Window Authentication的ASP.NET站点。现在,我们需要从sql server读取数据并使用SqlDataSource和GridView显示它们。但是大多数用户没有直接访问数据库的权限。是否有任何解决方案从数据库获取数据并在网站上显示它们而不授予用户权限?
最诚挚的问候,
答案 0 :(得分:3)
是 - 在数据库服务器上创建SQL用户,并使用此一个SQL用户帐户访问所有用户(使用其域帐户对您的系统进行身份验证)的数据库。
这是一种非常常见的情况,它允许您轻松细化对该帐户可用的访问权限,而不是尝试在SQL服务器上管理多个域样式帐户。
这里有很多连接字符串选项:
http://www.connectionstrings.com
这里也是一篇相当不错的MSDN文章:
答案 1 :(得分:0)
我可能误解了您的问题,但如果您要避免的是明确必须单独为每个用户授予数据库权限,则可以通过向Active Directory安全组授予权限来解决此问题,您需要所有用户授予访问权限是成员。各个用户将继承该组的权限。
但是,这里存在另一个问题,这可能意味着启用SQL身份验证是一种更简单的解决方案。除非在域中启用Kerberos身份验证(或者Web服务器与数据库服务器位于同一物理计算机上),否则Web服务器将无法将用户的凭据传递到数据库服务器以进行身份验证 - 即所谓的双跳问题。 Google提供“windows double hop”以获取更多信息。