設定小組組建部署的權限
演講者:Jason Lee
本主題介紹如何設定權限,以便您的建置伺服器能夠作為自動建置程序的一部分,將內容部署到網頁伺服器和資料庫伺服器。
本主題構成一系列教學課程的一部分,該系列教學課程圍繞著一家名為 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 部署代理服務 (也稱為遠端代理),從遠端位置部署應用程式。
- 透過定位目標伺服器上的網際網路資訊服務 (IIS) Web 部署處理常式,從遠端位置部署應用程式。
在這種情況下,遠端代理有兩個主要限制:
- 遠端代理僅支援 NTLM 驗證。 換句話說,部署必須使用建置服務識別—您不能冒充其他帳戶。
- 若要使用遠端代理,執行部署的帳戶必須是目標伺服器上的管理員。
這兩個限制共同導致遠端代理方法不適合自動化 Team Build 部署。 若要使用此方法,您需要使建置服務帳戶成為任何目標 Web 伺服器上的管理員。
相較之下,Web 部署處理常式方法具有多種優勢:
- Web 部署處理常式支援透過 HTTPS 進行基本驗證,這可讓您將備用帳戶的憑證傳遞給 IIS Web 部署工具 (Web Deploy)。
- 您可以設定目標 Web 伺服器以允許非管理員使用者使用 Web 部署處理常式將內容部署到特定 IIS 網站。
因此,當您從 Team Build 自動化 Web 套件部署時,顯然最好以 Web 部署處理常式為目標。 這是推薦的流程:
- 建立一個低特權網域帳戶以用於部署。
- 設定 Web 部署處理常式,並授予帳戶將內容部署到特定 IIS 網站所需的權限,如「設定 Web 伺服器以進行 Web 部署發佈 (Web 部署處理常式)」中所述。
- 呼叫 Web 部署並以 Web 部署處理常式為目標,使用基本驗證並提供您建立的網域帳戶的憑證來執行部署。
在連絡人管理員範例解決方案中,您可以在特定環境的專案檔案中指定驗證類型 (基本或 NTLM)、Web 部署憑證和端點位址 (遠端代理程式或 Web 部署處理常式)。 這些值用於在執行專案檔案時制定和執行 Web 部署命令。 有關更多資訊,請參閱「部署 Web 套件」。
如需設定 Web 部署處理常式的詳細資訊 (包括如何設定權限),請參閱「設定 Web 伺服器進行 Web 部署發佈 (Web 部署處理常式)」。 有關設定遠端代理的詳細資訊,請參閱「設定 Web 伺服器以進行 Web 部署發佈 (遠端代理)」。
設定資料庫伺服器權限
若要將資料庫部署到 SQL Server,您必須:
- 在 SQL Server 執行個體上為部署帳戶建立登入名稱。
- 授予 SQL Server 執行個體的登入 DBCreator 權限。
- 初始部署後,將登入名稱新增至目標資料庫上的 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 部署」。