如何:使用映射的 Windows 域用户访问 SQL Server

更新:2007 年 11 月

默认情况下,在 Microsoft Windows 2000 和 Microsoft Windows XP 中,ASP.NET 应用程序在名为 ASPNET 的本地用户帐户的上下文中运行;在 Windows Server 2003 中,该应用程序在名为 NETWORK SERVICE 的本地用户帐户的上下文中运行。这两种用户帐户具有有限的访问权限。但 ASPNET 帐户是 Web 服务器的本地帐户。 因此,在远程计算机上并不会将它识别为用户。若要避开此限制,您可以让您的应用程序在 Windows 域用户(Web 服务器和运行 Microsoft SQL Server 的计算机都可以识别)的上下文中运行。

将您的应用程序进程映射到 Windows 域用户帐户时,要求您配置下列内容:

  • Web 服务器。

    必须确保您所指定的 Windows 域用户帐户具有足够(但仅此而已)的用户权限来运行 Web 应用程序。

  • 应用程序。

    必须配置 ASP.NET 的 Web.config 文件以识别域用户帐户名。

    2xzyzb0f.alert_note(zh-cn,VS.90).gif说明:

    有关 Machine.config 和 Web.config 文件的信息,请参见 ASP.NET 配置概述

  • 连接字符串。

    在为应用程序中的连接对象创建连接字符串时,必须指定这些连接字符串将使用 Windows 集成安全性。

  • SQL Server。

    必须添加指定的域用户帐户作为 SQL Server 登录用户。

在 Web 服务器上配置用户帐户

为 Windows 域用户帐户设置用户权限

  1. 在 Web 服务器上,使用 Windows 管理工具确保映射的 Windows 域用户帐户具有必需的用户权限。

    有关详细信息,请参见 ASP.NET 必需的访问控制列表 (ACL)

  2. 使用 -ga 开关运行 aspnet_regiis.exe,以授予将用于应用程序模拟的标识所需的一般用户权限。

映射到 Windows 用户帐户并启用模拟

在为域用户帐户建立正确的用户权限后,需要配置应用程序标识模拟。

2xzyzb0f.alert_security(zh-cn,VS.90).gif安全说明:

将用户凭据放入 Web.config 文件时,可能会对安全构成威胁。对包含 Web.config 文件的目录具有访问权限的用户可以读取该文件,进而查看这些凭据。有关如何针对此威胁采取保护措施的详细信息,请参见使用受保护的配置加密配置信息

为模拟配置 Web 应用程序

  • 打开应用程序的 Web.config 文件,然后添加下面的标识模拟代码:

    <identity impersonate="true" userName="domain\username" password="********"/>
    

    请将以上示例中列出的值替换为正确的密码。

    2xzyzb0f.alert_note(zh-cn,VS.90).gif说明:

    Web.config 文件中的元素区分大小写。

在连接字符串中使用 Windows 安全性

最后,在为数据库访问创建连接字符串之后,请将这些连接字符串配置为使用 Windows 集成安全性。

在连接字符串中使用 Windows 集成安全性

  • 在为应用程序创建连接字符串时,不要包含用户名和密码。相反,对于连接字符串,应将 Integrated Security 属性设置为 SSPI。

    下面的示例演示了一个包含适当属性的连接字符串:

    data source=myserver;initial catalog=northwind;Integrated Security=SSPI
    

为集成安全性配置 SQL Server

  1. 在 Windows 中,单击**“开始”,指向“Microsoft SQL Server”,然后单击“企业管理器”**。

  2. 打开服务器的节点,然后展开要向其授予用户权限的数据库的节点。

  3. 右击**“用户”,然后单击“新建数据库用户”**。

  4. 在**“数据库用户属性”对话框中,在“登录名”框中输入域\用户名,然后单击“确定”**。

请参见

概念

ASP.NET 模拟