Share via


Konfigurieren eines Datenbankservers für die Web Deploy-Veröffentlichung

von Jason Lee

In diesem Thema wird beschrieben, wie Sie einen SQL Server 2008 R2-Datenbankserver für die Unterstützung der Webbereitstellung und -veröffentlichung konfigurieren.

Die in diesem Thema beschriebenen Aufgaben sind für jedes Bereitstellungsszenario üblich. Es spielt keine Rolle, ob Ihre Webserver für die Verwendung des IIS Web Deployment Tools (Web Deploy) Remote Agent-Diensts, des Web Deploy-Handlers oder der Offlinebereitstellung konfiguriert sind oder ob Ihre Anwendung auf einem einzelnen Webserver oder einer Serverfarm ausgeführt wird. Die Art und Weise, wie Sie die Datenbank bereitstellen, kann sich je nach Sicherheitsanforderungen und anderen Überlegungen ändern. Beispielsweise können Sie die Datenbank mit oder ohne Beispieldaten bereitstellen und Benutzerrollenzuordnungen bereitstellen oder diese nach der Bereitstellung manuell konfigurieren. Die Art und Weise, wie Sie den Datenbankserver konfigurieren, bleibt jedoch unverändert.

Sie müssen keine zusätzlichen Produkte oder Tools installieren, um einen Datenbankserver zur Unterstützung der Webbereitstellung zu konfigurieren. Wenn Sie davon ausgehen, dass Ihr Datenbankserver und Ihr Webserver auf unterschiedlichen Computern ausgeführt werden, müssen Sie folgendes ausführen:

  • Zulassen, dass SQL Server über TCP/IP kommunizieren können.
  • Lassen Sie SQL Server Datenverkehr über alle Firewalls zu.
  • Weisen Sie dem Webservercomputerkonto eine SQL Server Anmeldung zu.
  • Ordnen Sie die Computerkontoanmeldung allen erforderlichen Datenbankrollen zu.
  • Weisen Sie dem Konto, das die Bereitstellung ausführen wird, eine SQL Server Anmelde- und Datenbankerstellerberechtigungen zu.
  • Um wiederholte Bereitstellungen zu unterstützen, ordnen Sie die Anmeldung des Bereitstellungskontos der Datenbankrolle db_owner zu.

In diesem Thema erfahren Sie, wie Sie die einzelnen Verfahren ausführen. Bei den Aufgaben und exemplarischen Vorgehensweisen in diesem Thema wird davon ausgegangen, dass Sie mit einer standardbasierten instance von SQL Server 2008 R2 beginnen, die unter Windows Server 2008 R2 ausgeführt wird. Bevor Sie fortfahren, stellen Sie Folgendes sicher:

  • Windows Server 2008 R2 Service Pack 1 und alle verfügbaren Updates werden installiert.
  • Der Server ist in die Domäne eingebunden.
  • Der Server verfügt über eine statische IP-Adresse.
  • SQL Server 2008 R2 Service Pack 1 und alle verfügbaren Updates sind installiert.

Die SQL Server instance muss nur die Rolle Datenbank-Engine-Dienste enthalten, die automatisch in jeder SQL Server-Installation enthalten ist. Aus Gründen der einfachen Konfiguration und Wartung wird jedoch empfohlen, die Serverrollen "Management Tools – Basic" und " Management Tools – Complete " einzubeziehen.

Hinweis

Weitere Informationen zum Verknüpfen von Computern mit einer Domäne finden Sie unter Verknüpfen von Computern mit der Domäne und Anmelden. Weitere Informationen zum Konfigurieren statischer IP-Adressen finden Sie unter Konfigurieren einer statischen IP-Adresse. Weitere Informationen zum Installieren SQL Server finden Sie unter Installieren SQL Server 2008 R2.

Aktivieren des Remotezugriffs für SQL Server

SQL Server verwendet TCP/IP für die Kommunikation mit Remotecomputern. Wenn sich Ihr Datenbankserver und Ihr Webserver auf unterschiedlichen Computern befinden, müssen Sie Folgendes ausführen:

  • Konfigurieren Sie SQL Server Netzwerkeinstellungen, um die Kommunikation über TCP/IP zuzulassen.
  • Konfigurieren Sie alle Hardware- oder Softwarefirewalls, um TCP-Datenverkehr (und in einigen Fällen UDP-Datenverkehr) an den Ports zuzulassen, die vom SQL Server instance verwendet werden.

Um SQL Server für die Kommunikation über TCP/IP zu aktivieren, verwenden Sie SQL Server-Konfigurations-Manager, um die Netzwerkkonfiguration für Ihre SQL Server instance zu ändern.

So aktivieren Sie SQL Server für die Kommunikation über TCP/IP

  1. Zeigen Sie im Startmenü auf Alle Programme, klicken Sie auf Microsoft SQL Server 2008 R2, klicken Sie auf Konfigurationstools, und klicken Sie dann auf SQL Server-Konfigurations-Manager.

  2. Erweitern Sie im Strukturansichtsbereich SQL Server Netzwerkkonfiguration, und klicken Sie dann auf Protokolle für MSSQLSERVER.

    Hinweis

    Wenn Sie mehrere Instanzen von SQL Server installiert haben, wird für jede instance ein Protokollelement für[instance Name] angezeigt. Sie müssen Netzwerkeinstellungen instance instance konfigurieren.

  3. Klicken Sie im Detailbereich mit der rechten Maustaste auf die Zeile TCP/IP , und klicken Sie dann auf Aktivieren.

    Klicken Sie im Detailbereich mit der rechten Maustaste auf die Zeile TCP/IP, und klicken Sie dann auf Aktivieren.

  4. Klicken Sie im Dialogfeld Warnung auf OK.

    Klicken Sie im Dialogfeld Warnung auf OK.

  5. Sie müssen den MSSQLSERVER-Dienst neu starten, bevor Ihre neue Netzwerkkonfiguration wirksam wird. Sie können dies an einer Eingabeaufforderung, über die Dienstkonsole oder über SQL Server Management Studio. In diesem Verfahren verwenden Sie SQL Server Management Studio.

  6. Schließen Sie den SQL Server-Konfigurations-Manager.

  7. Zeigen Sie im Startmenü auf Alle Programme, klicken Sie auf Microsoft SQL Server 2008 R2, und klicken Sie dann auf SQL Server Management Studio.

  8. Geben Sie im Dialogfeld Verbindung mit Server herstellen im Feld Servername den Namen des Datenbankservers ein, und klicken Sie dann auf Verbinden.

    Geben Sie im Dialogfeld Verbindung mit Server herstellen im Feld Servername den Namen des Datenbankservers ein, und klicken Sie dann auf Verbinden.

  9. Klicken Sie im Bereich Objekt-Explorer mit der rechten Maustaste auf den übergeordneten Serverknoten (z. B. TESTDB1), und klicken Sie dann auf Neu starten.

    Klicken Sie im Bereich Objekt-Explorer mit der rechten Maustaste auf den übergeordneten Serverknoten (z. B. TESTDB1), und klicken Sie dann auf Neu starten.

  10. Klicken Sie im Dialogfeld Microsoft SQL Server Management Studio auf Ja.

    Klicken Sie im Dialogfeld Microsoft SQL Server Management Studio auf Ja.

  11. Schließen Sie nach dem Neustart des Diensts SQL Server Management Studio.

Um SQL Server Datenverkehr über eine Firewall zuzulassen, müssen Sie zunächst wissen, welche Ports Ihr SQL Server instance verwendet. Dies hängt davon ab, wie die SQL Server instance erstellt und konfiguriert wurde:

  • Eine Standard-instance von SQL Server lauscht auf Anforderungen (und antwortet darauf) an TCP-Port 1433.
  • Ein benannter instance von SQL Server lauscht auf Anforderungen (und antwortet darauf) an einem dynamisch zugewiesenen TCP-Port.
  • Wenn der SQL Server Browserdienst aktiviert ist, können Clients den Dienst am UDP-Port 1434 abfragen, um herauszufinden, welcher TCP-Port für eine bestimmte SQL Server instance verwendet werden soll. Dieser Dienst ist jedoch häufig aus Sicherheitsgründen deaktiviert.

Wenn Sie eine Standard-instance von SQL Server verwenden, müssen Sie Ihre Firewall so konfigurieren, dass Datenverkehr zugelassen wird.

Direction Vom Port aus Zum Portieren Porttyp
Eingehend Any 1433 TCP
Ausgehend 1433 Any TCP

Hinweis

Technisch gesehen verwendet ein Clientcomputer einen zufällig zugewiesenen TCP-Port zwischen 1024 und 5000 für die Kommunikation mit SQL Server, und Sie können Ihre Firewallregeln entsprechend einschränken. Weitere Informationen zu SQL Server Ports und Firewalls finden Sie unter TCP/IP-Portnummern, die für die Kommunikation mit SQL über eine Firewall erforderlich sind, und Unter Vorgehensweise: Konfigurieren eines Servers für die Überwachung an einem bestimmten TCP-Port (SQL Server-Konfigurations-Manager).

In den meisten Windows Server-Umgebungen müssen Sie wahrscheinlich die Windows-Firewall auf dem Datenbankserver konfigurieren. Standardmäßig lässt die Windows-Firewall den gesamten ausgehenden Datenverkehr zu, es sei denn, eine Regel verbietet dies ausdrücklich. Damit Ihr Webserver Ihre Datenbank erreichen kann, müssen Sie eine eingehende Regel konfigurieren, die TCP-Datenverkehr an der Portnummer zulässt, die vom SQL Server instance verwendet wird. Wenn Sie eine Standard-instance von SQL Server verwenden, können Sie das nächste Verfahren verwenden, um diese Regel zu konfigurieren.

So konfigurieren Sie die Windows-Firewall so, dass die Kommunikation mit einem Standard-SQL Server instance

  1. Zeigen Sie auf dem Datenbankserver im Startmenü auf Verwaltung, und klicken Sie dann auf Windows-Firewall mit erweiterter Sicherheit.

  2. Klicken Sie im Strukturansichtsbereich auf Eingehende Regeln.

    Klicken Sie im Strukturansichtsbereich auf Eingehende Regeln.

  3. Klicken Sie im Bereich Aktionen unter Eingehende Regeln auf Neue Regel.

  4. Wählen Sie im Assistenten für neue eingehende Regeln auf der Seite Regeltyp die Option Port aus, und klicken Sie dann auf Weiter.

    Wählen Sie im Assistenten für neue eingehende Regeln auf der Seite Regeltyp die Option Port aus, und klicken Sie dann auf Weiter.

  5. Stellen Sie auf der Seite Protokoll und Ports sicher, dass TCP ausgewählt ist, und geben Sie im Feld Spezifische lokale Portsden Wert 1433 ein, und klicken Sie dann auf Weiter.

    Stellen Sie auf der Seite Protokoll und Ports sicher, dass TCP ausgewählt ist, und geben Sie im Feld Spezifische lokale Ports den Wert 1433 ein, und klicken Sie dann auf Weiter.

  6. Lassen Sie auf der Seite Aktion die Option Verbindung zulassen ausgewählt, und klicken Sie auf Weiter.

  7. Lassen Sie auf der Seite Profil die Option Domäne ausgewählt, deaktivieren Sie die Kontrollkästchen Privat und Öffentlich , und klicken Sie dann auf Weiter.

    Lassen Sie auf der Seite Profil die Option Domäne ausgewählt, deaktivieren Sie die Kontrollkästchen Privat und Öffentlich, und klicken Sie dann auf Weiter.

  8. Geben Sie auf der Seite Name der Regel einen geeigneten aussagekräftigen Namen (z. B. SQL Server Standard-instance – Netzwerkzugriff), und klicken Sie dann auf Fertig stellen.

Weitere Informationen zum Konfigurieren der Windows-Firewall für SQL Server, insbesondere wenn Sie mit SQL Server über nicht standardmäßige oder dynamische Ports kommunizieren müssen, finden Sie unter How to: Configure a Windows Firewall for Database Engine Access.

Konfigurieren von Anmeldungen und Datenbankberechtigungen

Wenn Sie eine Webanwendung für Internetinformationsdienste (IIS) bereitstellen, wird die Anwendung mit der Identität des Anwendungspools ausgeführt. In einer Domänenumgebung verwenden Anwendungspoolidentitäten das Computerkonto des Servers, auf dem sie ausgeführt werden, um auf Netzwerkressourcen zuzugreifen. Computerkonten haben das Format [Domänenname]</strong>[Computername]$, z. B. FABRIKAM\TESTWEB1$. Damit Ihre Webanwendung über das Netzwerk auf eine Datenbank zugreifen kann, müssen Sie Folgendes ausführen:

  • Fügen Sie dem SQL Server instance eine Anmeldung für das Webservercomputerkonto hinzu.
  • Ordnen Sie die Computerkontoanmeldung allen erforderlichen Datenbankrollen zu (in der Regel db_datareader und db_datawriter).

Wenn Ihre Webanwendung auf einer Serverfarm und nicht auf einem einzelnen Server ausgeführt wird, müssen Sie diese Prozeduren für jeden Webserver in der Serverfarm wiederholen.

Hinweis

Weitere Informationen zu Anwendungspoolidentitäten und dem Zugriff auf Netzwerkressourcen finden Sie unter Anwendungspoolidentitäten.

Sie können diese Aufgaben auf verschiedene Weise angehen. Um die Anmeldung zu erstellen, haben Sie die folgenden Möglichkeiten:

  • Erstellen Sie die Anmeldung manuell auf dem Datenbankserver mithilfe von Transact-SQL oder SQL Server Management Studio.
  • Verwenden Sie ein SQL Server 2008-Serverprojekt in Visual Studio, um die Anmeldung zu erstellen und bereitzustellen.

Eine SQL Server Anmeldung ist kein Objekt auf Datenbankebene, sondern ein Objekt auf Serverebene, sodass sie nicht von der Datenbank abhängig ist, die Sie bereitstellen möchten. Daher können Sie die Anmeldung jederzeit erstellen, und der einfachste Ansatz besteht häufig darin, die Anmeldung manuell auf dem Datenbankserver zu erstellen, bevor Sie mit der Bereitstellung von Datenbanken beginnen. Sie können das nächste Verfahren verwenden, um eine Anmeldung in SQL Server Management Studio zu erstellen.

So erstellen Sie eine SQL Server Anmeldung für das Webservercomputerkonto

  1. Zeigen Sie auf dem Datenbankserver im Menü Start auf Alle Programme, klicken Sie auf Microsoft SQL Server 2008 R2, und klicken Sie dann auf SQL Server Management Studio.

  2. Geben Sie im Dialogfeld Verbindung mit Server herstellen im Feld Servername den Namen des Datenbankservers ein, und klicken Sie dann auf Verbinden.

    Diese Abbildung veranschaulicht: Geben Sie im Dialogfeld Mit Server verbinden in das Feld Servername den Namen des Datenbankservers ein, und klicken Sie dann auf Verbinden.

  3. Klicken Sie im Bereich Objekt-Explorer mit der rechten Maustaste auf Sicherheit, zeigen Sie auf Neu, und klicken Sie dann auf Anmelden.

  4. Geben Sie im Dialogfeld Anmeldung – Neu im Feld Anmeldename den Namen Ihres Webservercomputerkontos ein (z. B. FABRIKAM\TESTWEB1$).

    Geben Sie im Dialogfeld Anmeldung – Neu im Feld Anmeldename den Namen Ihres Webservercomputerkontos ein (z. B. FABRIKAM\TESTWEB1$).

  5. Klicken Sie auf OK.

An diesem Punkt ist Ihr Datenbankserver für die Veröffentlichung von Web Deploy bereit. Alle von Ihnen bereitgestellten Lösungen funktionieren jedoch erst, wenn Sie die Computerkontoanmeldung den erforderlichen Datenbankrollen zuordnen. Das Zuordnen der Anmeldung zu Datenbankrollen erfordert viel mehr Überlegungen, da Sie Rollen erst nach der Bereitstellung der Datenbank zuordnen können. Um die Anmeldung des Computerkontos den erforderlichen Datenbankrollen zuzuordnen, haben Sie die folgenden Möglichkeiten:

  • Weisen Sie der Anmeldung die Datenbankrollen manuell zu, nachdem Sie die Datenbank zum ersten Mal bereitgestellt haben.
  • Verwenden Sie ein Skript nach der Bereitstellung, um der Anmeldung die Datenbankrollen zuzuweisen.

Weitere Informationen zum Automatisieren der Erstellung von Anmeldungen und Datenbankrollenzuordnungen finden Sie unter Bereitstellen von Datenbankrollenmitgliedschaften in Testumgebungen. Alternativ können Sie das nächste Verfahren verwenden, um die Computerkontoanmeldung manuell den erforderlichen Datenbankrollen zuzuordnen. Denken Sie daran, dass Sie dieses Verfahren erst ausführen können, nachdem Sie die Datenbank bereitgestellt haben.

So ordnen Sie Datenbankrollen dem Webservercomputerkonto zu

  1. Öffnen Sie SQL Server Management Studio wie zuvor.

  2. Erweitern Sie im Bereich Objekt-Explorer den Knoten Sicherheit, erweitern Sie den Knoten Anmeldungen, und doppelklicken Sie dann auf die Computerkontoanmeldung (z. B. FABRIKAM\TESTWEB1$).

    Erweitern Sie im Bereich Objekt-Explorer den Knoten Sicherheit, erweitern Sie den Knoten Anmeldungen, und doppelklicken Sie dann auf die Computerkontoanmeldung (z. B. FABRIKAM\TESTWEB1$).

  3. Klicken Sie im Dialogfeld Anmeldeeigenschaften auf Benutzerzuordnung.

  4. Wählen Sie in der Tabelle Benutzer, die dieser Anmeldung zugeordnet sind , den Namen Ihrer Datenbank aus (z. B . ContactManager).

  5. Wählen Sie in der Liste Datenbankrollenmitgliedschaft für:[Datenbankname] die erforderlichen Berechtigungen aus. Im Fall der Contact Manager-Beispiellösung müssen Sie die Rollen db_datareader und db_datawriter auswählen.

    Wählen Sie in der Liste Datenbankrollenmitgliedschaft für: [Datenbankname] die erforderlichen Berechtigungen aus. Im Fall der Contact Manager-Beispiellösung müssen Sie die Rollen db_datareader und db_datawriter auswählen.

  6. Klicken Sie auf OK.

Während die manuelle Zuordnung von Datenbankrollen für Testumgebungen häufig mehr als ausreichend ist, ist es für automatisierte Bereitstellungen mit einem Klick in Staging- oder Produktionsumgebungen weniger wünschenswert. Weitere Informationen zum Automatisieren dieser Art von Aufgabe mithilfe von Skripts nach der Bereitstellung finden Sie unter Bereitstellen von Datenbankrollenmitgliedschaften in Testumgebungen.

Hinweis

Weitere Informationen zu Server- und Datenbankprojekten finden Sie unter Visual Studio 2010 SQL Server Datenbankprojekte.

Konfigurieren von Berechtigungen für das Bereitstellungskonto

Wenn das Konto, das Sie zum Ausführen der Bereitstellung verwenden, kein SQL Server Administrator ist, müssen Sie auch eine Anmeldung für dieses Konto erstellen. Um die Datenbank zu erstellen, muss das Konto Mitglied der dbcreator-Serverrolle sein oder über entsprechende Berechtigungen verfügen.

Hinweis

Wenn Sie Web Deploy oder VSDBCMD zum Bereitstellen einer Datenbank verwenden, können Sie Windows-Anmeldeinformationen oder SQL Server Anmeldeinformationen verwenden (wenn Ihr SQL Server instance für die Unterstützung der Authentifizierung im gemischten Modus konfiguriert ist). Beim nächsten Verfahren wird davon ausgegangen, dass Sie Windows-Anmeldeinformationen verwenden möchten, aber nichts hindert Sie daran, einen SQL Server Benutzernamen und das Kennwort in Ihrer Verbindungszeichenfolge anzugeben, wenn Sie die Bereitstellung konfigurieren.

So richten Sie Berechtigungen für das Bereitstellungskonto ein

  1. Öffnen Sie SQL Server Management Studio wie zuvor.

  2. Klicken Sie im Bereich Objekt-Explorer mit der rechten Maustaste auf Sicherheit, zeigen Sie auf Neu, und klicken Sie dann auf Anmelden.

  3. Geben Sie im Dialogfeld Anmeldung – Neu im Feld Anmeldename den Namen Ihres Bereitstellungskontos ein (z. B. FABRIKAM\matt).

  4. Klicken Sie im Bereich Seite auswählen auf Serverrollen.

  5. Wählen Sie dbcreator aus, und klicken Sie dann auf OK.

    Wählen Sie dbcreator aus, und klicken Sie dann auf OK.

Um nachfolgende Bereitstellungen zu unterstützen, müssen Sie das Bereitstellungskonto auch der db_owner Rolle in der Datenbank nach der ersten Bereitstellung hinzufügen. Dies liegt daran, dass Sie bei nachfolgenden Bereitstellungen das Schema einer vorhandenen Datenbank ändern, anstatt eine neue Datenbank zu erstellen. Wie im vorherigen Abschnitt beschrieben, können Sie einer Datenbankrolle aus offensichtlichen Gründen erst einen Benutzer hinzufügen, wenn Sie die Datenbank erstellt haben.

So ordnen Sie die Anmeldung des Bereitstellungskontos der db_owner Datenbankrolle zu

  1. Öffnen Sie SQL Server Management Studio wie zuvor.

  2. Erweitern Sie im fenster Objekt-Explorer den Knoten Sicherheit, erweitern Sie den Knoten Anmeldungen, und doppelklicken Sie dann auf die Computerkontoanmeldung (z. B. FABRIKAM\matt).

  3. Klicken Sie im Dialogfeld Anmeldeeigenschaften auf Benutzerzuordnung.

  4. Wählen Sie in der Tabelle Benutzer, die dieser Anmeldung zugeordnet sind , den Namen Ihrer Datenbank aus (z. B . ContactManager).

  5. Wählen Sie in der Liste Datenbankrollenmitgliedschaft für:[Datenbankname] die db_owner Rolle aus.

    Wählen Sie in der Liste Datenbankrollenmitgliedschaft für: [Datenbankname] die db_owner Rolle aus.

  6. Klicken Sie auf OK.

Zusammenfassung

Ihr Datenbankserver sollte jetzt bereit sein, Remotedatenbankbereitstellungen zu akzeptieren und IIS-Remotewebservern den Zugriff auf Ihre Datenbanken zu ermöglichen. Bevor Sie versuchen, Datenbanken bereitzustellen und zu verwenden, sollten Sie die folgenden wichtigen Punkte überprüfen:

  • Haben Sie SQL Server so konfiguriert, dass TCP/IP-Remoteverbindungen akzeptiert werden?
  • Haben Sie Firewalls konfiguriert, um SQL Server Datenverkehr zuzulassen?
  • Haben Sie eine Computerkontoanmeldung für jeden Webserver erstellt, der auf SQL Server zugreift?
  • Enthält Ihre Datenbankbereitstellung ein Skript zum Erstellen von Benutzerrollenzuordnungen, oder müssen Sie diese manuell erstellen, nachdem Sie die Datenbank zum ersten Mal bereitgestellt haben?
  • Haben Sie eine Anmeldung für das Bereitstellungskonto erstellt und der Serverrolle dbcreator hinzugefügt?

Weitere Informationen

Anleitungen zum Bereitstellen von Datenbankprojekten finden Sie unter Bereitstellen von Datenbankprojekten. Anleitungen zum Erstellen von Datenbankrollenmitgliedschaften durch Ausführen eines Skripts nach der Bereitstellung finden Sie unter Bereitstellen von Datenbankrollenmitgliedschaften in Testumgebungen. Eine Anleitung zum Bewältigen der einzigartigen Bereitstellungsanforderungen von Mitgliedschaftsdatenbanken finden Sie unter Bereitstellen von Mitgliedschaftsdatenbanken in Unternehmensumgebungen.