設定小組組建部署的權限

作者:Jason Lee

本主題描述如何設定許可權,讓您的組建伺服器在自動化建置程式中將內容部署至 Web 服務器和資料庫伺服器。

本主題構成一系列教學課程的一部分,以名為 Fabrikam, Inc 的虛構公司企業部署需求為基礎。本教學課程系列使用範例解決方案連絡人 管理員解決方案來代表具有實際複雜層級的 Web 應用程式,包括 ASP.NET MVC 3 應用程式、Windows Communication Foundation (WCF) 服務和資料庫專案。

這些教學課程的核心部署方法是以 瞭解專案檔中所述的分割專案檔方法為基礎,其中建置程式是由兩個專案檔控制,一個包含適用于每個目的地環境的組建指示,另一個包含環境特定的組建和部署設定。 在建置階段,環境特定的專案檔會合並到與環境無關的專案檔中,以形成一組完整的建置指示。

工作概觀

當您安裝 Team Foundation Server (TFS) 2010 組建服務時,您會指定要執行服務的身分識別。 根據預設,這是網路服務帳戶。 或者,您也可以設定建置服務以使用網域帳戶執行。

任何需要Windows 驗證部署工作,而且您打算使用 Team Build 自動化,將會使用組建服務身分識別來執行。 因此,您必須將 Web 服務器和資料庫伺服器上的任何必要許可權授與組建服務身分識別。

注意

網路服務帳戶會使用電腦帳戶向其他電腦進行驗證。 電腦帳戶的格式為[功能變數名稱][電腦名稱稱]$ ,例如FABRIKAM\TFSBUILD$。 因此,如果您的組建服務使用網路服務身分識別執行,您應該將任何必要的許可權授與組建伺服器的機器帳戶身分識別。

設定 Web 服務器許可權

選擇正確的 Web 部署方法中所述,如果您想要將 Web 套件部署至遠端 Web 服務器,可以使用兩個主要方法:

  • Web Deployment Agent​服務為目標, (目的地伺服器上的遠端代理程式) ,從遠端位置部署應用程式。
  • 目的地伺服器上的 Internet Information Services (IIS) Web Deploy Handler 為目標,從遠端位置部署應用程式。

在此情況下,遠端代理程式有兩個主要限制:

  • 遠端代理程式僅支援 NTLM 驗證。 換句話說,部署必須使用組建服務身分識別,您無法模擬另一個帳戶。
  • 若要使用遠端代理程式,執行部署的帳戶必須是目標伺服器上的系統管理員。

這兩項限制讓遠端代理程式對自動化小組組建部署而言不想要。 若要使用這種方法,您必須讓組建服務帳戶成為任何目標 Web 服務器上的系統管理員。

相反地,Web Deploy 處理常式方法提供各種優點:

  • Web 部署處理常式支援透過 HTTPS 進行基本驗證,可讓您將替代帳戶的認證傳遞至 IIS Web 部署工具, (Web Deploy) 。
  • 您可以設定目標網頁伺服器,以允許非系統管理員使用者使用 Web Deploy Handler 將內容部署至特定 IIS 網站。

因此,當您從 Team Build 將 Web 套件部署自動化時,最好以 Web 部署處理常式為目標。 這是建議的程式:

  1. 建立用於部署的低許可權網域帳戶。
  2. 設定 Web 部署處理常式,並將將內容部署至特定 IIS 網站的必要許可權授與帳戶,如設定 Web Deploy 發佈 (Web Deploy 處理常式) 中所述。
  3. 叫用 Web 部署並以 Web Deploy 處理常式為目標,使用基本驗證並提供您所建立網域帳戶的認證來執行部署。

連絡人管理員 範例解決方案中,您可以指定驗證類型 (基本或 NTLM) 、Web Deploy 認證,以及遠端代理程式或 Web Deploy 處理常式) 環境特定專案檔中的端點位址 (。 執行專案檔時,這些值是用來制定和執行 Web Deploy 命令。 如需詳細資訊,請參閱 部署 Web 套件

如需設定 Web Deploy 處理常式的詳細資訊,包括如何設定許可權,請參閱 設定 Web Deploy 發行的 Web 服務器 (Web Deploy 處理常式) 。 如需設定遠端代理程式的詳細資訊,請參閱 設定 Web Server for Web Deploy Publishing (Remote Agent)

設定資料庫伺服器許可權

若要將資料庫部署至SQL Server,您必須:

  • 在 SQL Server 實例上建立部署帳戶的登入。
  • 授與登入DBCreator SQL Server 實例的許可權。
  • 初始部署之後,將登入新增至目標資料庫的 db_owner 角色。 這是必要的,因為後續部署時,您會修改現有的資料庫,而不是建立新的資料庫。

您可以使用 NTLM 驗證或SQL Server驗證,向SQL Server實例進行驗證:

  • 如果您使用 NTLM 驗證,您必須將上述許可權授與組建服務帳戶。
  • 如果您使用SQL Server驗證,您必須將上述許可權授與SQL Server帳戶。 您也需要在用來部署資料庫的連接字串中包含SQL Server使用者名稱和密碼。

如需如何設定資料庫部署許可權的逐步詳細資料,請參閱 設定適用于 Web Deploy Publishing 的資料庫伺服器

結論

此時,您應該瞭解所需的許可權,以及從 Team Build 自動執行 Web 應用程式和資料庫部署時所開啟的驗證選項。 您也應該能夠在 IIS 網頁伺服器和SQL Server資料庫伺服器上實作必要的許可權。

深入閱讀

如需設定 Windows Server 環境以支援遠端部署的詳細資訊,請參閱 設定 Web 部署的伺服器環境