連接字串與權限概觀

若要執行「資料庫單元測試」(Database Unit Test),您必須使用一個或兩個特定連接字串來連接到資料庫伺服器。 每一個連接字串都代表具有特定權限的帳戶 (如果您要在特定的指令碼或測試中執行某個工作或一組工作,必須擁有該帳戶)。 您可以在 [專案組態] 對話方塊中指定這些字串,或是手動為測試專案編輯 app.config 檔案來加以指定。

連接字串

您可以在 [專案組態] 對話方塊中,為以下的每一個帳戶指定連接字串。

注意事項注意事項

只有當您使用 SQL Server 驗證時,執行內容和授權的內容才會不同。 如果您是使用 Windows 驗證,則兩個連接字串會使用相同的認證。

  • 執行內容 (必要) - 用來執行「測試指令碼」(Test Script) 的使用者帳戶。 這個連接字串應該具有您預期使用者所具備的相同認證, 這一點非常重要,因為這樣可確保適當的權限已經套用到資料庫。 如需詳細資訊,請參閱 HOW TO:設定資料庫單元測試執行

    在測試專案的 app.config 檔案中,這就是 ExecutionContext 項目。

  • 授權的內容 (選用) - 具有執行測試前動作、測試後動作、TestInitialize 和 TestCleanup 指令碼之較高權限的帳戶。 這些指令碼會設定資料庫狀態,而且如果是測試後動作,也可以用來驗證資料庫中的物件。 這個連接字串也可用來部署資料庫變更及產生資料。

    在測試專案的 app.config 檔案中,這就是 PrivilegedContext 項目。 如果資料庫單元測試只會執行測試指令碼,您就不需要指定授權的內容。

您在 [專案組態] 對話方塊中所指定的字串會儲存在測試專案的 app.config 檔案中。 您也可以直接編輯這個檔案並重建專案,然後新的值就會出現在此對話方塊中。

Windows 驗證和 SQL 驗證的比較

當您指定連接字串時,您必須在使用 Windows 驗證和 SQL 驗證之間做出選擇。 選擇 Windows 驗證的其中一個理由是此驗證方式對小組使用測試的支援優於 SQL 驗證。 如果您選擇 SQL 驗證,則會根據使用者認證將連接字串加密 (使用資料保護 API (DPAPI))。 這表示,此測試專案中的測試將只會為您執行,而不會針對當您簽入測試之後透過原始檔控制系統取得這些測試的小組成員來執行。 若要執行此測試專案中的測試,小組的其他人將必須使用他們自己的認證來重新設定此測試專案。 若要這樣做,他們會編輯他們自己的 app.config 檔案複本,或是使用 [專案組態] 對話方塊。

使用權限

此測試指令碼會在執行內容權限等級執行,也就是在資料庫上執行的使用者命令在一般使用情況下有效的相同權限等級。 測試前動作、測試後動作、TestInitialize 和 TestCleanup 指令碼都會在授權的內容權限等級執行。

由於用於測試後動作指令碼之較高權限連接的緣故,所以您可以在其中執行驗證。 在此指令碼中,您也可以執行指令碼命令來測試權限。 如需權限的詳細資訊,請參閱 Visual Studio 資料庫功能的必要權限中的資料庫單元測試章節。

請參閱

概念

資料庫單元測試中的指令碼

資料庫單元測試檔案