配置团队生成部署权限

作者 :Jason Lee

本主题介绍如何配置权限,使生成服务器能够在自动生成过程中将内容部署到 Web 服务器和数据库服务器。

本主题是一系列教程的一部分,这些教程基于名为 Fabrikam, Inc 的虚构公司的企业部署要求。本教程系列使用示例解决方案( Contact Manager 解决方案)来表示具有实际复杂程度的 Web 应用程序,包括 ASP.NET MVC 3 应用程序、Windows Communication Foundation (WCF) 服务和数据库项目。

这些教程的核心部署方法基于了解项目文件中所述的拆分 项目文件方法,在该方法中,生成过程由两个项目文件控制:一个项目文件包含适用于每个目标环境的生成说明,另一个包含特定于环境的生成和部署设置。 在生成时,特定于环境的项目文件将合并到与环境无关的项目文件中,以形成一组完整的生成说明。

任务概述

安装 Team Foundation Server (TFS) 2010 生成服务时,需要指定运行该服务的标识。 默认情况下,这是“网络服务”帐户。 或者,可以将生成服务配置为使用域帐户运行。

任何需要Windows 身份验证且你计划使用 Team Build 自动执行的部署任务都将使用生成服务标识运行。 因此,需要向生成服务标识授予对 Web 服务器和数据库服务器的任何所需权限。

注意

网络服务帐户使用计算机帐户向其他计算机进行身份验证。 计算机帐户采用 [domain name][machine name]$格式,例如 FABRIKAM\TFSBUILD$。 因此,如果生成服务使用网络服务标识运行,则应向生成服务器的计算机帐户标识授予任何所需的权限。

配置 Web 服务器权限

选择正确的 Web 部署方法中所述,如果要将 Web 包部署到远程 Web 服务器,可以使用两种main方法:

  • 通过面向目标服务器上的 Web 部署代理 服务 (也称为远程代理) ,从远程位置部署应用程序。
  • 通过目标服务器上的 Internet Information Services (IIS) Web 部署处理程序 ,从远程位置部署应用程序。

在这种情况下,远程代理有两个关键限制:

  • 远程代理仅支持 NTLM 身份验证。 换句话说,部署必须使用生成服务标识, 你不能模拟另一个帐户。
  • 若要使用远程代理,执行部署的帐户必须是目标服务器上的管理员。

这两个限制共同使得远程代理方法不适用于自动化团队生成部署。 若要使用此方法,需要使生成服务帐户成为任何目标 Web 服务器上的管理员。

相比之下,Web 部署处理程序方法具有多种优势:

  • Web 部署处理程序支持通过 HTTPS 进行基本身份验证,这使你可以将备用帐户的凭据传递给 IIS Web 部署工具 (Web 部署) 。
  • 可以将目标 Web 服务器配置为允许非管理员用户使用 Web 部署处理程序将内容部署到特定 IIS 网站。

因此,从团队生成自动部署 Web 包时,显然最好以 Web 部署处理程序为目标。 这是建议的过程:

  1. 创建用于部署的低特权域帐户。
  2. 配置 Web 部署处理程序,并授予帐户将内容部署到特定 IIS 网站的所需权限,如 配置 Web 服务器进行 Web 部署发布 (Web 部署处理程序) 中所述。
  3. 调用 Web 部署并面向 Web 部署处理程序,使用基本身份验证并提供所创建的域帐户的凭据来执行部署。

Contact Manager 示例解决方案中,指定身份验证类型 (基本或 NTLM) 、Web 部署凭据和终结点地址 (远程代理或特定于环境的项目文件中的 Web 部署处理程序) 。 在执行项目文件时,这些值用于构建和运行 Web 部署命令。 有关详细信息,请参阅 部署 Web 包

有关配置 Web 部署处理程序的详细信息,包括如何配置权限,请参阅 为 Web 部署发布配置 Web 服务器 (Web 部署处理程序) 。 有关配置远程代理的详细信息,请参阅 为 Web 部署发布配置 Web 服务器 (远程代理)

配置数据库服务器权限

若要将数据库部署到SQL Server,必须:

  • 在 SQL Server 实例上为部署帐户创建登录名。
  • 向登录名 DBCreator 授予对 SQL Server 实例的权限。
  • 初始部署后,将登录名添加到目标数据库上的 db_owner 角色。 这是必需的,因为在后续部署中,你要修改现有数据库,而不是创建新数据库。

可以使用 NTLM 身份验证或SQL Server身份验证对 SQL Server 实例进行身份验证:

  • 如果使用 NTLM 身份验证,则需要向生成服务帐户授予上述权限。
  • 如果使用SQL Server身份验证,则需要向 SQL Server 帐户授予上述权限。 还需要在用于部署数据库的连接字符串中包含SQL Server用户名和密码。

有关如何配置数据库部署权限的分步详细信息,请参阅 为 Web 部署发布配置数据库服务器

结论

此时,应了解从 Team Build 自动执行 Web 应用程序和数据库部署时所需的权限,以及向你开放的身份验证选项。 还应能够对 IIS Web 服务器和SQL Server数据库服务器实现必要的权限。

深入阅读

有关配置 Windows Server 环境以支持远程部署的详细信息,请参阅 配置 Web 部署的服务器环境