Udostępnij za pośrednictwem


Omówienie parametrów połączenia i uprawnień

Aby uruchomić testy jednostkowe programu SQL Server, należy nawiązać połączenie z serwerem bazy danych przy użyciu jednego lub dwóch określonych parametrów połączenia. Każdy parametr połączenia reprezentuje konto, które posiada określone uprawnienia niezbędne do wykonania zadania lub zestawu zadań w określonym skrypcie w ramach testu. Te ciągi można określić w oknie dialogowym konfiguracji testów programu SQL Server lub ręcznie edytując plik app.config dla projektu testowego.

Parametry połączenia

W oknie dialogowym konfiguracji testu programu SQL Server można określić parametry połączenia dla każdego z następujących kont.

Notatka

Kontekst wykonywania i kontekst uprzywilejowany różnią się tylko w przypadku korzystania z uwierzytelniania programu SQL Server. Jeśli używasz uwierzytelniania systemu Windows, te same poświadczenia będą używane dla obu parametrów połączenia.

  • Kontekst wykonywania (wymagany) — konto użytkownika do uruchamiania skryptu testowego. Ten łańcuch połączenia powinien mieć te same poświadczenia, które oczekujesz, że będą mieli użytkownicy. Jest to ważne, ponieważ gwarantuje, że odpowiednie uprawnienia zostały zastosowane do bazy danych. Aby uzyskać więcej informacji, zobacz How to: Configure SQL Server Unit Test Execution (Jak skonfigurować wykonywanie testów jednostkowych programu SQL Server).

    W pliku app.config dla projektu testowego jest to element ExecutionContext.

  • Privileged Context (Opcjonalnie) — konto w tej samej bazie danych, które ma wyższe uprawnienia do uruchamiania akcji przed testem, akcji po przetestowaniu, TestInitialize i skryptów TestCleanup. Te skrypty ustawiają stan bazy danych i dla akcji po przetestowaniu mogą służyć do sprawdzania poprawności obiektów w bazie danych. Te parametry połączenia są również używane do wdrażania zmian bazy danych i generowania danych.

    W pliku app.config dla projektu testowego jest to element PrivilegedContext. Jeśli testy jednostkowe programu SQL Server uruchamiają tylko skrypt testowy, nie trzeba określać kontekstu uprzywilejowanego.

Ciągi określone w oknie dialogowym konfiguracji projektu są przechowywane w pliku app.config projektu testowego. Możesz również edytować ten plik bezpośrednio i ponownie skompilować projekt, po którym nowe wartości pojawią się w oknie dialogowym.

Uwierzytelnianie systemu Windows a uwierzytelnianie programu SQL Server

Podczas określania parametrów połączenia należy wybrać między użyciem uwierzytelniania systemu Windows a uwierzytelnianiem SQL. Jednym z powodów wyboru uwierzytelniania systemu Windows jest to, że obsługuje on korzystanie z testów przez zespół lepiej niż uwierzytelnianie programu SQL Server. W przypadku wybrania uwierzytelniania programu SQL Server parametry połączenia są szyfrowane przy użyciu interfejsu API ochrony danych (DPAPI) na podstawie poświadczeń użytkownika. Oznacza to, że testy w tym projekcie testowym będą uruchamiane tylko dla Ciebie, a nie dla członków zespołu, którzy pobierają testy za pośrednictwem systemu kontroli źródła po ich zapisaniu. Aby uruchomić testy w tym projekcie testowym, inni członkowie zespołu musieliby ponownie skonfigurować projekt testowy przy użyciu własnych poświadczeń. W tym celu zmodyfikują kopię pliku app.config lub użyją okna dialogowego konfiguracji projektu.

Uprawnienia

Skrypt testowy jest uruchamiany na poziomie uprawnień kontekstu wykonywania, który jest tym samym poziomem uprawnień, który będzie obowiązywać w przypadku poleceń użytkownika uruchamianych w bazie danych, gdy jest w typowym użyciu. Akcja przed testem, po przetestowaniu, TestInitialize i skrypty TestCleanup są uruchamiane na poziomie uprawnień kontekstu uprzywilejowanego.

Ze względu na połączenie z wyższymi uprawnieniami, którego używa się dla skryptu akcji po teście, można w nim przeprowadzić walidację. W tym skrypcie można również uruchamiać polecenia skryptu, które testują uprawnienia. Aby uzyskać więcej informacji na temat uprawnień, zobacz sekcję testowania jednostkowego programu SQL Server Wymagane uprawnienia dla narzędzi SQL Server Data Tools.

Zobacz też

tworzenie i definiowanie testów jednostkowych programu SQL Server
skrypty w testach jednostkowych programu SQL Server
pliki testów jednostkowych SQL Server