Bereitstellen einer Datenebenenanwendung

Mithilfe eines Assistenten oder eines PowerShell-Skripts können Sie eine Datenebenenanwendung (DAC) von einem DAC-Paket für eine vorhandene Database Engine (Datenbankmodul)-Instanz oder SQL-Datenbank-Instanz bereitstellen. Beim Bereitstellungsprozess wird eine DAC-Instanz registriert, indem die DAC-Definition in der msdb-Systemdatenbank (master in SQL-Datenbank) gespeichert und eine Datenbank erstellt wird, die anschließend mit allen in der DAC definierten Datenbankobjekten aufgefüllt wird.

  • Vorbereitungen: SQL Server-Hilfsprogramm, Datenbankoptionen und -einstellungen, Einschränkungen, Voraussetzungen, Sicherheit, Berechtigungen

  • Bereitstellen einer DAC mit: Assistent zum Bereitstellen von Datenebenenanwendungen, PowerShell

Vorbereitungen

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.

Weitere Informationen zum Erstellen eines DAC-Pakets finden Sie unter Grundlegendes zu Datenebenenanwendungen.

SQL Server-Hilfsprogramm

Beim Bereitstellen einer DAC in einer verwalteten Instanz des Datenbankmoduls wird die bereitgestellte DAC in das SQL Server-Hilfsprogramm integriert, wenn der Hilfsprogramm-Sammlungssatz das nächste Mal von der 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.

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 Datenbankprojekt in SQL Server Developer Tools erstelltes DAC-Paket verwendet die im Datenbankprojekt 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-Datenbank 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.

[Nach oben]

Einschränkungen

Eine DAC kann für SQL-Datenbank bereitgestellt werden, oder für eine Instanz von Database Engine (Datenbankmodul), die SQL Server 2005 Service Pack ab Version 4 (SP4) ausführt. Wenn Sie eine DAC mit SQL Server 2012 oder SQL Server 2008 R2 erstellen, enthält die DAC möglicherweise von SQL Server 2005 nicht unterstützte Objekte. Sie können diese DACs nicht auf Instanzen von SQL Server 2005 bereitstellen.

[Nach oben]

Voraussetzungen

Das Bereitstellen eines DAC-Pakets aus unbekannten oder nicht vertrauenswürdigen Quellen wird nicht empfohlen. Solche Pakete 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 ein Paket 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 Durchführen dieser Tests finden Sie unter Überprüfen eines DAC-Pakets.

[Nach oben]

Sicherheit

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.

[Nach oben]

Berechtigungen

Eine DAC kann nur von Mitgliedern der festen Serverrollen sysadmin oder serveradmin bereitgestellt werden bzw. unter Verwendung von Anmeldenamen aus der festen Serverrolle dbcreator, die ü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-Datenbank bereitstellen zu können, müssen Sie Mitglied der Rollen "loginmanager" oder "serveradmin" sein. Um eine DAC ohne Anmeldenamen in SQL-Datenbank bereitstellen zu können, müssen Sie Mitglied der Rollen "dbmanager" oder "serveradmin" sein.

[Nach oben]

Verwenden des Assistenten zum Bereitstellen von Datenebenenanwendungen

So stellen Sie eine DAC mithilfe eines Assistenten bereit

  1. Erweitern Sie im Objekt-Explorer den Knoten für die Instanz, für die Sie die DAC bereitstellen möchten.

  2. Klicken Sie mit der rechten Maustaste auf den Knoten Datenbanken, und wählen Sie Datenebenenanwendung bereitstellen aus.

  3. Bearbeiten Sie die Dialogfelder des Assistenten:

    • Seite "Einführung"

    • Seite "DAC-Paket auswählen"

    • Seite "Richtlinie überprüfen"

    • Seite "Konfiguration aktualisieren"

    • Seite "Zusammenfassung"

    • Seite "Bereitstellen"

[Nach oben]

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.

[Bereitstellungs-Assistent]

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.

[Bereitstellungs-Assistent]

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.

[Bereitstellungs-Assistent]

Ü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.

[Bereitstellungs-Assistent]

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-Datenbank 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.

[Bereitstellungs-Assistent]

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-Datenbank und werden beim Bereitstellen auf SQL-Datenbank 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.

[Bereitstellungs-Assistent]

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.

[Bereitstellungs-Assistent]

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.

[Bereitstellungs-Assistent]

PowerShell

So stellen Sie DAC mithilfe der Install()-Methode in einem PowerShell-Skript bereit

  1. Erstellen Sie ein SMO-Serverobjekt, und legen Sie es auf die Instanz fest, auf der Sie die DAC bereitstellen möchten.

  2. Öffnen Sie ein ServerConnection-Objekt, und stellen Sie eine Verbindung mit derselben Instanz her.

  3. Laden Sie die DAC-Paketdatei mithilfe von System.IO.File.

  4. Verwenden Sie add_DacActionStarted und add_DacActionFinished, um die DAC-Bereitstellungsereignisse zu abonnieren.

  5. Legen Sie die DatabaseDeploymentProperties fest.

  6. Verwenden Sie die DacStore.Install-Methode zum Bereitstellen der DAC.

  7. Schließen Sie den Dateidatenstrom, der zum Lesen der DAC-Paketdatei verwendet wurde.

[Nach oben]

Beispiel (PowerShell)

Im folgenden Beispiel wird eine DAC mit dem Namen "MyApplication" auf einer Standardinstanz von Database Engine (Datenbankmodul) bereitgestellt, wobei eine DAC-Definition aus einem MyApplication.dacpac-Paket verwendet wird.

## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = get-item .

## 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)

## 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)

## 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})

## 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()

[Nach oben]

Siehe auch

Konzepte

Datenebenenanwendungen

Extrahieren einer DAC aus einer Datenbank

Datenbankbezeichner