Udostępnij za pośrednictwem


Konfigurowanie serwera bazy danych dla usługi publikowania Web Deploy

Autor: Jason Lee

W tym temacie opisano sposób konfigurowania serwera bazy danych SQL Server 2008 R2 w celu obsługi wdrażania i publikowania w internecie.

Zadania opisane w tym temacie są typowe dla każdego scenariusza wdrażania — nie ma znaczenia, czy serwery internetowe są skonfigurowane do korzystania z usługi agenta zdalnego wdrażania sieci Web (Web Deploy) usług IIS, programu obsługi wdrażania sieci Web lub wdrożenia w trybie offline lub aplikacji uruchomionej na jednym serwerze internetowym lub farmie serwerów. Sposób wdrażania bazy danych może ulec zmianie zgodnie z wymaganiami dotyczącymi zabezpieczeń i innymi zagadnieniami. Można na przykład wdrożyć bazę danych z przykładowymi danymi lub bez nich, a także wdrożyć mapowania ról użytkownika lub skonfigurować je ręcznie po wdrożeniu. Jednak sposób konfigurowania serwera bazy danych pozostaje taki sam.

Nie trzeba instalować żadnych dodatkowych produktów ani narzędzi do konfigurowania serwera bazy danych w celu obsługi wdrażania w Internecie. Zakładając, że serwer bazy danych i serwer internetowy działają na różnych maszynach, wystarczy:

  • Zezwól SQL Server na komunikację przy użyciu protokołu TCP/IP.
  • Zezwalaj na ruch SQL Server przez wszystkie zapory.
  • Nadaj konto komputera serwera internetowego SQL Server logowania.
  • Zamapuj identyfikator logowania konta komputera na wszystkie wymagane role bazy danych.
  • Nadaj konto, które uruchomi wdrożenie, SQL Server uprawnienia do logowania i twórcy bazy danych.
  • Aby obsługiwać powtarzające się wdrożenia, zamapuj identyfikator logowania konta wdrożenia na rolę bazy danych db_owner .

W tym temacie pokazano, jak wykonać każdą z tych procedur. Zadania i przewodniki w tym temacie zakładają, że zaczynasz od domyślnego wystąpienia SQL Server 2008 R2 działającego w systemie Windows Server 2008 R2. Przed kontynuowaniem upewnij się, że:

  • System Windows Server 2008 R2 z dodatkiem Service Pack 1 i wszystkie dostępne aktualizacje są instalowane.
  • Serwer jest przyłączony do domeny.
  • Serwer ma statyczny adres IP.
  • SQL Server 2008 R2 z dodatkiem Service Pack 1 i są zainstalowane wszystkie dostępne aktualizacje.

Wystąpienie SQL Server musi uwzględniać tylko rolę usług aparatu bazy danych, która jest automatycznie uwzględniana w każdej instalacji SQL Server. Jednak w celu ułatwienia konfiguracji i konserwacji zalecamy dołączenie narzędzi do zarządzania — podstawowych i narzędzi do zarządzania — ukończenie ról serwera.

Uwaga

Aby uzyskać więcej informacji na temat dołączania komputerów do domeny, zobacz Dołączanie komputerów do domeny i logowanie. Aby uzyskać więcej informacji na temat konfigurowania statycznych adresów IP, zobacz Konfigurowanie statycznego adresu IP. Aby uzyskać więcej informacji na temat instalowania SQL Server, zobacz Instalowanie SQL Server 2008 R2.

Włączanie dostępu zdalnego do SQL Server

SQL Server używa protokołu TCP/IP do komunikowania się z komputerami zdalnymi. Jeśli serwer bazy danych i serwer internetowy znajdują się na różnych maszynach, należy wykonać następujące kroki:

  • Skonfiguruj ustawienia sieci SQL Server, aby zezwolić na komunikację za pośrednictwem protokołu TCP/IP.
  • Skonfiguruj wszystkie zapory sprzętowe lub programowe, aby zezwalać na ruch TCP (i w niektórych przypadkach ruch protokołu UDP) na portach używanych przez wystąpienie SQL Server.

Aby umożliwić SQL Server komunikowanie się za pośrednictwem protokołu TCP/IP, użyj SQL Server Configuration Manager, aby zmienić konfigurację sieci dla wystąpienia SQL Server.

Aby umożliwić SQL Server komunikowanie się przy użyciu protokołu TCP/IP

  1. W menu Start wskaż pozycję Wszystkie programy, kliknij pozycję Microsoft SQL Server 2008 R2, kliknij pozycję Narzędzia konfiguracji, a następnie kliknij przycisk SQL Server Configuration Manager.

  2. W okienku widoku drzewa rozwiń węzeł SQL Server Konfiguracja sieci, a następnie kliknij pozycję Protokoły dla serwera MSSQLSERVER.

    Uwaga

    Jeśli zainstalowano wiele wystąpień SQL Server, zobaczysz element Protocols for[instance name] dla każdego wystąpienia. Należy skonfigurować ustawienia sieciowe na podstawie wystąpienia według wystąpienia.

  3. W okienku szczegółów kliknij prawym przyciskiem myszy wiersz TCP/IP , a następnie kliknij przycisk Włącz.

    W okienku szczegółów kliknij prawym przyciskiem myszy wiersz TCP/IP, a następnie kliknij przycisk Włącz.

  4. W oknie dialogowym Ostrzeżenie kliknij przycisk OK.

    W oknie dialogowym Ostrzeżenie kliknij przycisk OK

  5. Przed zastosowaniem nowej konfiguracji sieci należy ponownie uruchomić usługę MSSQLSERVER. Można to zrobić w wierszu polecenia, w konsoli Usługi lub w SQL Server Management Studio. W tej procedurze użyjesz SQL Server Management Studio.

  6. Zamknij Menedżera konfiguracji programu SQL Server.

  7. W menu Start wskaż pozycję Wszystkie programy, kliknij pozycję Microsoft SQL Server 2008 R2, a następnie kliknij przycisk SQL Server Management Studio.

  8. W oknie dialogowym Łączenie z serwerem w polu Nazwa serwera wpisz nazwę serwera bazy danych, a następnie kliknij przycisk Połącz.

    W oknie dialogowym Łączenie z serwerem w polu Nazwa serwera wpisz nazwę serwera bazy danych, a następnie kliknij przycisk Połącz.

  9. W okienku Eksplorator obiektów kliknij prawym przyciskiem myszy węzeł serwera nadrzędnego (na przykład TESTDB1), a następnie kliknij przycisk Uruchom ponownie.

    W okienku Eksplorator obiektów kliknij prawym przyciskiem myszy węzeł serwera nadrzędnego (na przykład TESTDB1), a następnie kliknij przycisk Uruchom ponownie.

  10. W oknie dialogowym Microsoft SQL Server Management Studio kliknij przycisk Tak.

    W oknie dialogowym Microsoft SQL Server Management Studio kliknij przycisk Tak.

  11. Po ponownym uruchomieniu usługi zamknij SQL Server Management Studio.

Aby zezwolić na ruch SQL Server przez zaporę, najpierw musisz wiedzieć, które porty używa SQL Server wystąpienie. Będzie to zależeć od sposobu utworzenia i skonfigurowania wystąpienia SQL Server:

  • Domyślne wystąpienie SQL Server nasłuchuje żądań (i odpowiada na nie) na porcie TCP 1433.
  • Nazwane wystąpienie SQL Server nasłuchuje żądań (i odpowiada) na dynamicznie przypisanym porcie TCP.
  • Jeśli usługa SQL Server Browser jest włączona, klienci mogą wysyłać zapytania do usługi na porcie UDP 1434, aby dowiedzieć się, którego portu TCP używać dla określonego wystąpienia SQL Server. Jednak ta usługa jest często wyłączona ze względów bezpieczeństwa.

Zakładając, że używasz domyślnego wystąpienia SQL Server, musisz skonfigurować zaporę tak, aby zezwalała na ruch.

Kierunek Z portu Do portu Typ portu
Przychodzący Dowolne 1433 TCP
Wychodzący 1433 Dowolne TCP

Uwaga

Technicznie komputer kliencki będzie używać losowo przypisanego portu TCP z zakresu od 1024 do 5000 do komunikacji z SQL Server i można odpowiednio ograniczyć reguły zapory. Aby uzyskać więcej informacji na temat portów i zapór SQL Server, zobacz Numery portów TCP/IP wymagane do komunikowania się z programem SQL za pośrednictwem zapory i Instrukcje: Konfigurowanie serwera do nasłuchiwania na określonym porcie TCP (SQL Server Configuration Manager).

W większości środowisk systemu Windows Server prawdopodobnie konieczne będzie skonfigurowanie zapory systemu Windows na serwerze bazy danych. Domyślnie zapora systemu Windows zezwala na cały ruch wychodzący, chyba że reguła ją specjalnie zakazuje. Aby umożliwić serwerowi sieci Web dotarcie do bazy danych, należy skonfigurować regułę ruchu przychodzącego, która zezwala na ruch TCP na numer portu używany przez wystąpienie SQL Server. Jeśli używasz domyślnego wystąpienia SQL Server, możesz użyć następnej procedury, aby skonfigurować tę regułę.

Aby skonfigurować zaporę systemu Windows tak, aby zezwalała na komunikację z domyślnym wystąpieniem SQL Server

  1. Na serwerze bazy danych w menu Start wskaż pozycję Narzędzia administracyjne, a następnie kliknij pozycję Zapora systemu Windows z zabezpieczeniami zaawansowanymi.

  2. W okienku widoku drzewa kliknij pozycję Reguły ruchu przychodzącego.

    W okienku widoku drzewa kliknij pozycję Reguły ruchu przychodzącego.

  3. W okienku Akcje w obszarze Reguły ruchu przychodzącego kliknij pozycję Nowa reguła.

  4. W Kreatorze nowej reguły ruchu przychodzącego na stronie Typ reguły wybierz pozycję Port, a następnie kliknij przycisk Dalej.

    W Kreatorze nowej reguły ruchu przychodzącego na stronie Typ reguły wybierz pozycję Port, a następnie kliknij przycisk Dalej.

  5. Na stronie Protokół i porty upewnij się, że wybrano protokół TCP , a następnie w polu Określone porty lokalne wpisz 1433, a następnie kliknij przycisk Dalej.

    Na stronie Protokół i porty upewnij się, że wybrano protokół TCP, a następnie w polu Określone porty lokalne wpisz 1433, a następnie kliknij przycisk Dalej.

  6. Na stronie Akcja pozostaw pole Zezwalaj na wybrane połączenie i kliknij przycisk Dalej.

  7. Na stronie Profil pozostaw pole wyboru Domena zaznaczona, wyczyść pola wyboru Prywatne i Publiczne , a następnie kliknij przycisk Dalej.

    Na stronie Profil pozostaw pole wyboru Domena zaznaczona, wyczyść pola wyboru Prywatne i Publiczne, a następnie kliknij przycisk Dalej.

  8. Na stronie Nazwa nadaj regule odpowiednio opisową nazwę (na przykład SQL Server domyślne wystąpienie — dostęp do sieci), a następnie kliknij przycisk Zakończ.

Aby uzyskać więcej informacji na temat konfigurowania zapory systemu Windows dla SQL Server, szczególnie w przypadku konieczności komunikowania się z SQL Server za pośrednictwem portów niestandardowych lub dynamicznych, zobacz How to: Configure a Windows Firewall for Database Engine Access (Instrukcje: konfigurowanie zapory systemu Windows na potrzeby dostępu do aparatu bazy danych).

Konfigurowanie uprawnień logowania i bazy danych

Podczas wdrażania aplikacji internetowej w usługach Internet Information Services (IIS) aplikacja jest uruchamiana przy użyciu tożsamości puli aplikacji. W środowisku domeny tożsamości puli aplikacji używają konta komputera serwera, na którym są uruchamiane w celu uzyskania dostępu do zasobów sieciowych. Konta maszyn mają postać [nazwa domeny]</strong>[nazwa komputera]$— na przykład FABRIKAM\TESTWEB1$. Aby umożliwić aplikacji internetowej dostęp do bazy danych w sieci, należy wykonać następujące kroki:

  • Dodaj identyfikator logowania dla konta maszyny serwera internetowego do wystąpienia SQL Server.
  • Zamapuj identyfikator logowania konta komputera na wszystkie wymagane role bazy danych (zazwyczaj db_datareader i db_datawriter).

Jeśli aplikacja internetowa jest uruchomiona na farmie serwerów, a nie na jednym serwerze, należy powtórzyć te procedury dla każdego serwera internetowego w farmie serwerów.

Uwaga

Aby uzyskać więcej informacji na temat tożsamości puli aplikacji i uzyskiwania dostępu do zasobów sieciowych, zobacz Tożsamości puli aplikacji.

Możesz podejść do tych zadań na różne sposoby. Aby utworzyć nazwę logowania, możesz wykonać następujące czynności:

  • Utwórz logowanie ręcznie na serwerze bazy danych przy użyciu języka Transact-SQL lub SQL Server Management Studio.
  • Aby utworzyć i wdrożyć logowanie, użyj projektu SQL Server 2008 Server w programie Visual Studio.

Identyfikator logowania SQL Server jest obiektem na poziomie serwera, a nie obiektem na poziomie bazy danych, więc nie zależy od bazy danych, którą chcesz wdrożyć. W związku z tym można utworzyć identyfikator logowania w dowolnym momencie, a najprostszym rozwiązaniem jest często utworzenie logowania ręcznie na serwerze bazy danych przed rozpoczęciem wdrażania baz danych. Możesz użyć następnej procedury, aby utworzyć identyfikator logowania w SQL Server Management Studio.

Aby utworzyć identyfikator logowania SQL Server dla konta komputera z serwerem sieci Web

  1. Na serwerze bazy danych w menu Start wskaż pozycję Wszystkie programy, kliknij pozycję Microsoft SQL Server 2008 R2, a następnie kliknij SQL Server Management Studio.

  2. W oknie dialogowym Łączenie z serwerem w polu Nazwa serwera wpisz nazwę serwera bazy danych, a następnie kliknij przycisk Połącz.

    Ten obraz ilustruje: w oknie dialogowym Łączenie z serwerem w polu Nazwa serwera wpisz nazwę serwera bazy danych, a następnie kliknij przycisk Połącz.

  3. W okienku Eksplorator obiektów kliknij prawym przyciskiem myszy pozycję Zabezpieczenia, wskaż polecenie Nowy, a następnie kliknij pozycję Zaloguj.

  4. W oknie dialogowym Logowanie — nowe w polu Nazwa logowania wpisz nazwę konta komputera serwera internetowego (na przykład FABRIKAM\TESTWEB1$).

    W oknie dialogowym Logowanie — nowe w polu Nazwa logowania wpisz nazwę konta komputera serwera internetowego (na przykład FABRIKAM\TESTWEB1$).

  5. Kliknij przycisk OK.

Na tym etapie serwer bazy danych jest gotowy do publikowania w usłudze Web Deploy. Jednak wszystkie wdrożone rozwiązania nie będą działać, dopóki nie zamapujesz nazwy logowania konta komputera na wymagane role bazy danych. Mapowanie nazwy logowania do ról bazy danych wymaga o wiele większej myślenia, ponieważ nie można mapować ról dopiero po wdrożeniu bazy danych. Aby zamapować identyfikator logowania konta komputera do wymaganych ról bazy danych, możesz wykonać następujące czynności:

  • Przypisz role bazy danych do logowania ręcznie po wdrożeniu bazy danych po raz pierwszy.
  • Użyj skryptu po wdrożeniu, aby przypisać role bazy danych do logowania.

Aby uzyskać więcej informacji na temat automatyzowania tworzenia identyfikatorów logowania i mapowań ról bazy danych, zobacz Wdrażanie członkostwa w rolach bazy danych w środowiskach testowych. Alternatywnie możesz użyć następnej procedury, aby ręcznie zamapować identyfikator logowania konta komputera do wymaganych ról bazy danych. Pamiętaj, że nie można wykonać tej procedury do momentu wdrożenia bazy danych.

Aby mapować role bazy danych na identyfikator logowania konta komputera serwera internetowego

  1. Otwórz SQL Server Management Studio tak jak wcześniej.

  2. W okienku Eksplorator obiektów rozwiń węzeł Zabezpieczenia, rozwiń węzeł Identyfikatory logowania, a następnie kliknij dwukrotnie nazwę logowania konta komputera (na przykład FABRIKAM\TESTWEB1$).

    W okienku Eksplorator obiektów rozwiń węzeł Zabezpieczenia, rozwiń węzeł Identyfikatory logowania, a następnie kliknij dwukrotnie nazwę logowania konta komputera (na przykład FABRIKAM\TESTWEB1$).

  3. W oknie dialogowym Właściwości logowania kliknij pozycję Mapowanie użytkownika.

  4. W obszarze Użytkownicy zamapowany na tę tabelę logowania wybierz nazwę bazy danych (na przykład ContactManager).

  5. Na liście Członkostwo w roli bazy danych dla:[nazwa bazy danych] wybierz wymagane uprawnienia. W przypadku przykładowego rozwiązania Contact Manager należy wybrać role db_datareader i db_datawriter .

    Na liście Członkostwo w roli bazy danych dla: [nazwa bazy danych] wybierz wymagane uprawnienia. W przypadku przykładowego rozwiązania Contact Manager należy wybrać role db_datareader i db_datawriter.

  6. Kliknij przycisk OK.

Chociaż ręczne mapowanie ról bazy danych jest często bardziej niż odpowiednie dla środowisk testowych, mniej pożądane jest automatyczne lub jedno kliknięcie wdrożeń w środowiskach przejściowych lub produkcyjnych. Więcej informacji na temat automatyzowania tego rodzaju zadań można znaleźć przy użyciu skryptów po wdrożeniu w temacie Wdrażanie członkostwa w rolach bazy danych w środowiskach testowych.

Uwaga

Aby uzyskać więcej informacji na temat projektów serwera i projektów baz danych, zobacz Visual Studio 2010 SQL Server Database Projects(Projekty baz danych programu Visual Studio 2010).

Konfigurowanie uprawnień dla konta wdrożenia

Jeśli konto, którego użyjesz do uruchomienia wdrożenia, nie jest administratorem SQL Server, musisz również utworzyć identyfikator logowania dla tego konta. Aby utworzyć bazę danych, konto musi być członkiem roli serwera dbcreator lub mieć równoważne uprawnienia.

Uwaga

W przypadku wdrażania bazy danych przy użyciu narzędzia Web Deploy lub VSDBCMD można użyć poświadczeń systemu Windows lub poświadczeń SQL Server (jeśli wystąpienie SQL Server jest skonfigurowane do obsługi uwierzytelniania w trybie mieszanym). W następnej procedurze przyjęto założenie, że chcesz użyć poświadczeń systemu Windows, ale podczas konfigurowania wdrożenia nie ma niczego, co uniemożliwia określenie SQL Server nazwy użytkownika i hasła w parametrach połączenia.

Aby skonfigurować uprawnienia dla konta wdrożenia

  1. Otwórz SQL Server Management Studio tak jak wcześniej.

  2. W okienku Eksplorator obiektów kliknij prawym przyciskiem myszy pozycję Zabezpieczenia, wskaż polecenie Nowy, a następnie kliknij pozycję Zaloguj.

  3. W oknie dialogowym Logowanie — nowe w polu Nazwa logowania wpisz nazwę konta wdrożenia (na przykład FABRIKAM\matt).

  4. W okienku Wybierz stronę kliknij pozycję Role serwera.

  5. Wybierz pozycję dbcreator, a następnie kliknij przycisk OK.

    Wybierz pozycję dbcreator, a następnie kliknij przycisk OK.

Aby obsługiwać kolejne wdrożenia, należy również dodać konto wdrażania do roli db_owner w bazie danych po pierwszym wdrożeniu. Dzieje się tak, ponieważ podczas kolejnych wdrożeń modyfikujesz schemat istniejącej bazy danych, a nie tworzysz nowej bazy danych. Jak opisano w poprzedniej sekcji, nie można dodać użytkownika do roli bazy danych do momentu utworzenia bazy danych z oczywistych powodów.

Aby zamapować identyfikator logowania konta wdrożenia do roli bazy danych db_owner

  1. Otwórz SQL Server Management Studio tak jak wcześniej.

  2. W oknie Eksplorator obiektów rozwiń węzeł Zabezpieczenia, rozwiń węzeł Identyfikatory logowania, a następnie kliknij dwukrotnie nazwę logowania konta komputera (na przykład FABRIKAM\matt).

  3. W oknie dialogowym Właściwości logowania kliknij pozycję Mapowanie użytkownika.

  4. W obszarze Użytkownicy zamapowany na tę tabelę logowania wybierz nazwę bazy danych (na przykład ContactManager).

  5. Na liście Członkostwo w roli bazy danych dla:[nazwa bazy danych] wybierz rolę db_owner .

    Na liście Członkostwo w roli bazy danych dla: [nazwa bazy danych] wybierz rolę db_owner.

  6. Kliknij przycisk OK.

Podsumowanie

Serwer bazy danych powinien być teraz gotowy do akceptowania zdalnych wdrożeń baz danych i zezwalania zdalnym serwerom internetowym usług IIS na dostęp do baz danych. Przed podjęciem próby wdrożenia i używania baz danych warto sprawdzić następujące kluczowe punkty:

  • Czy skonfigurowano SQL Server do akceptowania zdalnych połączeń TCP/IP?
  • Czy skonfigurowano jakiekolwiek zapory, aby zezwalały na ruch SQL Server?
  • Czy utworzono logowanie konta komputera dla każdego serwera internetowego, który będzie uzyskiwać dostęp do SQL Server?
  • Czy wdrożenie bazy danych zawiera skrypt do tworzenia mapowań ról użytkownika lub czy należy je utworzyć ręcznie po pierwszym wdrożeniu bazy danych?
  • Czy utworzono identyfikator logowania dla konta wdrożenia i dodano go do roli serwera dbcreator ?

Dalsze informacje

Aby uzyskać wskazówki dotyczące wdrażania projektów baz danych, zobacz Wdrażanie projektów bazy danych. Aby uzyskać wskazówki dotyczące tworzenia członkostwa w rolach bazy danych przez uruchomienie skryptu po wdrożeniu, zobacz Wdrażanie członkostwa roli bazy danych w środowiskach testowych. Aby uzyskać wskazówki dotyczące sposobu sprostania unikatowym wyzwaniom związanym z wdrażaniem, które stanowią bazy danych członkostwa, zobacz Wdrażanie baz danych członkostwa w środowiskach przedsiębiorstwa.