Vorgehensweise: Bereitstellen einer Datenebenenanwendung

Verwenden Sie den Assistenten zum Bereitstellen von Datenebenenanwendungen, um einer vorhandenen Instanz von SQL Azure oder SQL Server 2005 (SP4 oder höher) eine Datenebenenanwendung (DAC) aus einem DAC-Paket bereitzustellen. Im Rahmen der Bereitstellung wird eine DAC-Instanz registriert, indem die DAC-Definition in der Systemdatenbank msdb (master in SQL Azure) gespeichert wird. Zudem wird eine Datenbank erstellt, die anschließend mit allen in der DAC definierten Datenbankobjekten aufgefüllt wird.

Vorbereitungen

Sie können eine DAC in einer Instanz von Database Engine (Datenbankmodul), die unter SQL Server 2005 Service Pack 4 (SP4) oder höher ausgeführt wird, oder in SQL Azure bereitstellen. Die Verwendung der Clienttools von SQL Server 2008 R2 und möglicherweise von DAC Framework 1.1 ist erforderlich. Weitere Informationen finden Sie unter DAC-Unterstützung für SQL Server-Objekte und -Versionen.

Bei einer verwalteten Instanz des Datenbankmoduls wird die bereitgestellte DAC in das SQL Server-Hilfsprogramm integriert, wenn der Hilfsprogramm-Sammlungssatz das nächste Mal mittels Instanz an den Steuerungspunkt für das Hilfsprogramm gesendet wird. Die DAC ist dann unter dem Knoten Bereitgestellte Datenebenenanwendungen im Hilfsprogramm-Explorer von Management Studio vorhanden und wird auf der Detailseite Bereitgestellte Datenebenenanwendungen angezeigt.

Weitere Informationen zum Erstellen eines DAC-Pakets finden Sie unter Implementieren von Datenebenenanwendungen.

Anforderungen

Wenn eine Verbindung mit SQL Server 2005 SP4 oder höher besteht, kann eine DAC nur von Mitgliedern der festen Serverrollen sysadmin oder serveradmin oder von Anmeldenamen bereitgestellt werden, die zur festen Serverrolle dbcreator gehören und über ALTER ANY-LOGIN-Berechtigungen verfügen. Außerdem kann das integrierte SQL Server-Systemadministratorkonto mit der Bezeichnung sa zum Bereitstellen einer DAC verwendet werden. Um eine DAC mit Anmeldungen bei SQL Azure bereitstellen zu können, müssen Sie Mitglied der Rollen loginmanager oder serveradmin sein. Um eine DAC ohne Anmeldungen bei SQL Azure bereitstellen zu können, müssen Sie Mitglied der Rollen dbmanager oder serveradmin sein.

SicherheitshinweisSicherheitshinweis

Das Bereitstellen eines DAC-Pakets aus unbekannten oder nicht vertrauenswürdigen Quellen wird nicht empfohlen. Solche DACs können schädlichen Code enthalten, der möglicherweise unbeabsichtigten Transact-SQL-Code ausführt oder Fehler verursacht, indem er das Schema ändert. Bevor Sie eine DAC aus einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, entpacken Sie die DAC, und untersuchen Sie den Code, z. B. gespeicherte Prozeduren oder sonstigen benutzerdefinierten Code. Weitere Informationen zum Anzeigen des Inhalts einer DAC finden Sie unter Vorgehensweise: Überprüfen eines DAC-Pakets.

Anmeldekennwörter

Zur Erhöhung der Sicherheit werden die Anmeldenamen für die SQL Server-Authentifizierung ohne Kennwort in einem DAC-Paket gespeichert. Sobald das Paket bereitgestellt oder aktualisiert wird, wird der Anmeldename als deaktivierter Anmeldename mit einem generierten Kennwort erstellt. Um die Anmeldenamen zu aktivieren, melden Sie sich unter einem Anmeldenamen an, der über die ALTER ANY LOGIN-Berechtigung verfügt, und verwenden ALTER LOGIN, um den Anmeldenamen zu aktivieren und ein neues Kennwort zuzuweisen, das dem Benutzer mitgeteilt werden kann. Dies ist für Anmeldenamen der Windows-Authentifizierung nicht erforderlich, da die zugehörigen Kennwörter nicht von SQL Server verwaltet werden.

Datenbankoptionen und -einstellungen

Die während der Bereitstellung erstellte Datenbank verfügt standardmäßig über alle Standardeinstellungen der CREATE DATABASE-Anweisung mit folgenden Ausnahmen:

  • Für Datenbanksortierung und Kompatibilitätsgrad werden die im DAC-Paket definierten Werte festgelegt. Ein aus einem DAC-Projekt in Visual Studio erstelltes Paket verwendet die im DAC-Projekt festgelegten Werte. Ein aus einer vorhandenen Datenbank extrahiertes Paket verwendet die Werte aus der ursprünglichen Datenbank.

  • Sie können einige der Datenbankeinstellungen, z. B. Datenbanknamen und Dateipfade, auf der Seite Konfiguration aktualisieren anpassen. Beim Bereitstellen auf SQL Azure können Sie die Dateipfade nicht festlegen.

Einige Datenbankoptionen, z. B. TRUSTWORTHY, DB_CHAINING und HONOR_BROKER_PRIORITY, können nicht im Rahmen des Bereitstellungsprozesses angepasst werden. Physische Eigenschaften, z. B. die Anzahl der Dateigruppen oder die Anzahl und Größe der Dateien, können nicht im Rahmen des Bereitstellungsprozesses geändert werden. Nachdem die Bereitstellung abgeschlossen wurde, können Sie die ALTER DATABASE-Anweisung, SQL Server Management Studio oder PowerShell für SQL Server verwenden, um die Datenbank individuell anzupassen. Weitere Informationen finden Sie unter Ändern einer Datenbank.

Mehrere Bereitstellungen

Dasselbe DAC-Paket kann mehrmals für eine einzelne Database Engine (Datenbankmodul)-Instanz bereitgestellt werden, die Bereitstellungen müssen jedoch einzeln ausgeführt werden. Der für die einzelnen Bereitstellungen angegebene DAC-Instanzname muss innerhalb der Instanz von Database Engine (Datenbankmodul) eindeutig sein.

Bereitstellen einer DAC mit PowerShell

Erstellen Sie eine PowerShell-Skriptdatei (PS1-Datei), die den folgenden Code enthält.

  1. Fügen Sie Code hinzu, um ein SMO-Serverobjekt zu erstellen, und legen Sie es auf die Instanz mit der Datenbank fest, aus der Sie eine DAC extrahieren möchten. Mit dem folgenden Beispiel wird ein Serverobjekt auf die Standardinstanz auf dem lokalen Computer festgelegt:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. Fügen Sie Code hinzu, um ein ServerConnection-Objekt zu öffnen und eine Verbindung mit derselben Instanz herzustellen.

    ## Open a Common.ServerConnection to the same instance.
    $serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)
    $serverconnection.Connect()
    $dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)
    
  3. Fügen Sie Code hinzu, um die DAC-Paketdatei zu laden. In diesem Beispiel wird die Datei MyApplication.dacpac geladen.

    ## Load the DAC package file.
    $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
    $fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)
    $dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)
    
  4. Fügen Sie Code hinzu, um die DAC-Bereitstellungsereignisse zu abonnieren.

    ## Subscribe to the DAC deployment events.
    $dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
    $dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
    
  5. Fügen Sie Code hinzu, um die DAC bereitzustellen, die Datenbank zu erstellen und die DAC-Paketdatei zu schließen:

    ## Deploy the DAC and create the database.
    $dacName  = "MyApplication"
    $evaluateTSPolicy = $true
    $deployProperties = New-Object Microsoft.SqlServer.Management.Dac.DatabaseDeploymentProperties($serverconnection,$dacName)
    $dacstore.Install($dacType, $deployProperties, $evaluateTSPolicy)
    $fileStream.Close()
    

Führen Sie DeployDAC.ps1 entweder von einer PowerShell-Sitzung aus, in die Sie die SQL Server PowerShell-Snap-Ins geladen haben, oder verwenden Sie das Eingabeaufforderungs-Hilfsprogramm sqlps.

Verwenden des Assistenten zum Bereitstellen von Datenebenenanwendungen

In Management Studio können Sie den Assistenten zum Bereitstellen von Datenebenenanwendungen starten, indem Sie zum Knoten Verwaltung unter einem Server im Objekt-Explorer navigieren, mit der rechten Maustaste auf den Knoten Datenebenenanwendungen klicken und dann Datenebenenanwendung bereitstellen auswählen.

Der Assistent stellt die DAC für eine Database Engine (Datenbankmodul)-Instanz bereit, die dem Knoten zugeordnet ist, den Sie in der Objekt-Explorer-Hierarchie ausgewählt haben. Wenn Sie den Assistenten starten, indem Sie mit der rechten Maustaste auf den Serverknoten für die Instanz ProductionServer01/Accounting klicken, wird die DAC beispielsweise für diese Database Engine (Datenbankmodul)-Instanz bereitgestellt.

Klicken Sie auf einen Link in der unten angezeigten Liste, um zu den Details für eine Assistentenseite zu navigieren:

  • Seite "Einführung"

  • Seite "DAC-Paket auswählen"

  • Seite "Richtlinie überprüfen"

  • Seite "Konfiguration aktualisieren"

  • Seite "Zusammenfassung"

  • Seite "Bereitstellen"

Seite "Einführung"

Auf dieser Seite werden die Schritte zum Bereitstellen einer Datenebenenanwendung beschrieben.

Diese Seite nicht mehr anzeigen – Aktivieren Sie dieses Kontrollkästchen, damit die Seite in Zukunft nicht mehr angezeigt wird.

Weiter> – Geht zur Seite DAC-Paket auswählen über.

Abbrechen – Beendet den Assistenten, ohne eine DAC bereitzustellen.

Seite "DAC-Paket auswählen"

Verwenden Sie diese Seite, um das DAC-Paket anzugeben, das die bereitzustellende Datenebenenanwendung enthält. Die Seite durchläuft drei Statusübergänge.

Auswählen des DAC-Pakets

Verwenden Sie die Seite in ihrem Ausgangszustand, um das bereitzustellende DAC-Paket auszuwählen. Das DAC-Paket muss eine gültige DAC-Paketdatei sein und die Erweiterung .dacpac aufweisen.

DAC-Paket – Geben Sie den Pfad und den Dateinamen des DAC-Pakets an, das die bereitzustellende Datenebenenanwendung enthält. Sie können die Schaltfläche Durchsuchen rechts neben dem Feld auswählen, um zum Speicherort des DAC-Pakets zu wechseln.

Anwendungsname – Ein schreibgeschütztes Feld mit dem DAC-Namen, der beim Erstellen oder Extrahieren der DAC aus einer Datenbank zugewiesen wurde.

Version – Ein schreibgeschütztes Feld mit der Version, die beim Erstellen oder Extrahieren der DAC aus einer Datenbank zugewiesen wurde.

Beschreibung – Ein schreibgeschütztes Feld mit der Beschreibung, die beim Erstellen oder Extrahieren der DAC aus einer Datenbank geschrieben wurde.

< Zurück – Kehrt zur Seite Einführung zurück.

Weiter > – Zeigt eine Statusanzeige an, da der Assistent bestätigt, dass es sich bei der ausgewählten Datei um ein gültiges DAC-Paket handelt.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Überprüfen des DAC-Pakets

Zeigt eine Statusanzeige an, da der Assistent bestätigt, dass es sich bei der ausgewählten Datei um ein gültiges DAC-Paket handelt. Wenn das DAC-Paket überprüft wird, geht der Assistent zur abschließenden Version der Seite Paket auswählen über. Dort können Sie die Ergebnisse der Überprüfung einsehen. Wenn die Datei kein gültiges DAC-Paket ist, verbleibt der Assistent auf der Seite DAC-Paket auswählen. Wählen Sie entweder ein anderes gültiges DAC-Paket aus, oder brechen Sie den Assistenten ab, und generieren Sie ein neues DAC-Paket.

Der DAC-Inhalt wird überprüft – Die Statusanzeige, die den aktuellen Status des Überprüfungsprozesses angibt.

< Zurück – Kehrt zum Ausgangszustand der Seite Paket auswählen zurück.

Weiter> – Geht zur abschließenden Version der Seite Paket auswählen über.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Seite "Richtlinie überprüfen"

Verwenden Sie diese Seite, um die Auswertungsergebnisse der DAC-Richtlinie zur Serverauswahl zu überprüfen, wenn die DAC über eine Richtlinie verfügt. Die DAC-Richtlinie zur Serverauswahl ist optional und wird der DAC während der Erstellung in Visual Studio zugewiesen. Die Richtlinie verwendet Facets für die Richtlinie zur Serverauswahl, um Bedingungen anzugeben, die eine Database Engine (Datenbankmodul)-Instanz zum Hosten der DAC erfüllen sollte.

Auswertungsergebnisse der Richtlinienbedingungen – Ein schreibgeschützter Bericht, der anzeigt, ob die Bedingungen der Richtlinie zur DAC-Bereitstellung erfüllt sind. Die Auswertungsergebnisse für die einzelnen Bedingungen werden in einer separaten Zeile angezeigt.

Beim Bereitstellen von DAC auf SQL Azure ergeben die folgenden Serverauswahlrichtlinien immer false: Betriebssystemversion, Sprache, Named Pipes aktiviert, Plattform und tcp aktiviert.

Richtlinienverletzungen ignorieren – Verwenden Sie dieses Kontrollkästchen, um mit der Bereitstellung fortzufahren, wenn mindestens eine Richtlinienbedingung nicht erfüllt wurde. Aktivieren Sie diese Option nur, wenn Sie sicher sind, dass keine der fehlgeschlagenen Bedingungen die erfolgreiche Ausführung der DAC verhindert.

< Zurück – Kehrt zur Seite Paket auswählen zurück.

Weiter > – Geht zur Seite Konfiguration aktualisieren über.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Seite "Konfiguration aktualisieren"

Verwenden Sie diese Seite, um die Namen der bereitgestellten DAC-Instanz und der bei der Bereitstellung erstellten Datenbank anzugeben und die Datenbankoptionen festzulegen.

Datenbankname – Geben Sie den Namen der Datenbank an, die von der Bereitstellung erstellt werden soll. Standardmäßig wird der Name der Quelldatenbank verwendet, aus der die DAC extrahiert wurde. Der Name muss innerhalb der Database Engine (Datenbankmodul)-Instanz eindeutig sein und den Regeln für Database Engine (Datenbankmodul)-Bezeichner entsprechen.

Wenn Sie den Datenbanknamen ändern, werden die Namen der Datendatei und der Protokolldateien entsprechend dem neuen Wert angepasst.

Der Datenbankname wird auch als Name der DAC-Instanz verwendet. Der Instanzname wird im Knoten der DAC unter dem Knoten Datenebenenanwendungen im Objekt-Explorer oder im Knoten Bereitgestellte Datenebenenanwendungen im Hilfsprogramm-Explorer angezeigt.

Die folgenden Optionen gelten nicht für SQL Azure und werden beim Bereitstellen auf SQL Azure nicht angezeigt.

Standardspeicherort für Datenbankdatei verwenden – Wählen Sie diese Option aus, um die Datenbankdaten- und Protokolldateien am Standardspeicherort der Database Engine (Datenbankmodul)-Instanz abzulegen. Die Dateinamen werden anhand des Datenbanknamens erstellt.

Datenbankdateien angeben – Wählen Sie diese Option aus, um einen anderen Speicherort oder Namen für die Daten- und Protokolldateien anzugeben.

Pfad und Name der Datendatei – Geben Sie den vollständigen Pfad- und Dateinamen für die Datendatei an. Das Feld wird mit dem Standardpfad und -dateinamen aufgefüllt. Bearbeiten Sie die Zeichenfolge im Feld, um den Standardeintrag zu ändern, oder verwenden Sie die Schaltfläche Durchsuchen, um zum Ordner zu navigieren, in dem die Datendatei abgelegt werden soll.

Pfad und Name der Protokolldatei – Geben Sie den vollständigen Pfad- und Dateinamen für die Protokolldatei an. Das Feld wird mit dem Standardpfad und -dateinamen aufgefüllt. Bearbeiten Sie die Zeichenfolge im Feld, um den Standardeintrag zu ändern, oder verwenden Sie die Schaltfläche Durchsuchen, um zum Ordner zu navigieren, in dem die Protokolldatei abgelegt werden soll.

< Zurück – Kehrt zur Seite DAC-Paket auswählen zurück.

Weiter > – Geht zur Seite Zusammenfassung über.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Seite "Zusammenfassung"

Verwenden Sie diese Seite, um die Aktionen zu überprüfen, die der Assistent beim Bereitstellen der DAC ausführt.

Die folgenden Einstellungen werden zur Bereitstellung der DAC verwendet. Überprüfen Sie die angezeigten Informationen darauf, ob die ergriffenen Maßnahmen richtig sind. Im Fenster werden das ausgewählte DAC-Paket und der für die bereitgestellte DAC-Instanz ausgewählte Name angezeigt. Im Fenster werden auch die Einstellungen angezeigt, die beim Erstellen der mit der DAC verbundenen Datenbank verwendet werden.

< Zurück – Sie kehren zur Seite Konfiguration aktualisieren zurück, um die Auswahl zu ändern.

Weiter > – Stellt die DAC bereit und zeigt die Ergebnisse auf der Seite DAC bereitstellen an.

Abbrechen – Beendet den Assistenten, ohne die DAC bereitzustellen.

Seite "Bereitstellen"

Auf dieser Seite wird angegeben, ob der Bereitstellungsvorgang erfolgreich war oder fehlgeschlagen ist.

DAC wird bereitgestellt – Gibt an, ob die Aktionen zur Bereitstellung der DAC erfolgreich waren oder fehlgeschlagen sind. Überprüfen Sie die Informationen, um zu bestimmen, ob die einzelnen Aktionen erfolgreich waren oder fehlgeschlagen sind. Für alle Aktionen, die fehlerhaft waren, ist in der Spalte Ergebnis ein Link enthalten. Klicken Sie auf den Link, um einen Bericht des für diese Aktion aufgetretenen Fehlers anzuzeigen.

Bericht speichern – Klicken Sie auf diese Schaltfläche, um den Bereitstellungsbericht in einer HTML-Datei zu speichern. In der Datei ist der Status der einzelnen Aktionen aufgeführt, einschließlich aller durch die Aktionen generierten Fehler. Der Standardordner ist der Ordner SQL Server Management Studio\DAC Packages im Ordner Dokumente unter Ihrem Windows-Konto.

Fertig stellen – Beendet den Assistenten.

Änderungsverlauf

Aktualisierter Inhalt

Abschnitt zur Verwendung von PowerShell wurde hinzugefügt.