Bereitstellen einer DatenebenenanwendungDeploy a Data-tier Application

GILT FÜR: jaSQL ServerjaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Mithilfe eines Assistenten oder eines PowerShell-Skripts können Sie eine Datenebenenanwendung (DAC) von einem DAC-Paket für eine vorhandene Instanz der Datenbank-Engine oder der Azure SQL-Datenbank bereitstellen.Deploy a data-tier application (DAC) from a DAC package to an existing instance of the database engine or Azure SQL Database using a wizard or a PowerShell script.

Beim Bereitstellungsprozess wird eine DAC-Instanz registriert, indem die DAC-Definition in der msdb-Systemdatenbank (master in SQL-DatenbankSQL Database) gespeichert und eine Datenbank erstellt wird, die anschließend mit allen in der DAC definierten Datenbankobjekten aufgefüllt wird.The deployment process registers a DAC instance by storing the DAC definition in the msdb system database (master in SQL-DatenbankSQL Database); creates a database, then populates that database with all the database objects defined in the DAC.

Mehrfaches Bereitstellen desselben DAC-PaketsDeploy the same DAC package multiple times

Dasselbe DAC-Paket kann mehrmals an eine einzelne Datenbank-EngineDatabase Engine-Instanz bereitgestellt werden, die Bereitstellungen müssen jedoch einzeln ausgeführt werden.You can deploy the same DAC package to a single instance of the Datenbank-EngineDatabase Engine multiple times, but you must run the deployments one at a time. Der für die einzelnen Bereitstellungen angegebene DAC-Instanzname muss innerhalb der Instanz von Datenbank-EngineDatabase Engineeindeutig sein.The DAC instance name specified for each deployment must be unique within the instance of the Datenbank-EngineDatabase Engine.

Beim Bereitstellen einer DAC für eine Instanz der Datenbank-Engine wird die bereitgestellte DAC in das SQL Server-Hilfsprogramm integriert, wenn der Sammlungssatz des Hilfsprogramms das nächste Mal von der Instanz an den Steuerungspunkt für das Hilfsprogramm gesendet wird.If you deploy a DAC to an instance of the Database Engine, the deployed DAC is incorporated into the SQL Server Utility the next time the utility collection set is sent from the instance to the utility control point. Die DAC ist dann unter dem Knoten Bereitgestellte Datenschichtanwendungen im Management StudioManagement Studio Utility Explorer and reported in the Bereitgestellte Datenschichtanwendungen details page.The DAC will then be present in the Deployed Data-tier Applications node of the Management StudioManagement Studio Utility Explorer and reported in the Deployed Data-tier Applications details page.

Datenbankoptionen und -einstellungenDatabase Options and Settings

Die während der Bereitstellung erstellte Datenbank verfügt standardmäßig über alle Standardeinstellungen der CREATE DATABASE-Anweisung mit folgenden Ausnahmen:By default, the database created during the deployment will have all of the default settings from the CREATE DATABASE statement, except:

  • Für Datenbanksortierung und Kompatibilitätsgrad werden die im DAC-Paket definierten Werte festgelegt.The database collation and compatibility level are set to the values defined in the DAC package. Ein aus einem Datenbankprojekt in SQL Server Developer Tools erstelltes DAC-Paket verwendet die im Datenbankprojekt festgelegten Werte.A DAC package built from a database project in the SQL Server Developer Tools uses the values set in the database project. Ein aus einer vorhandenen Datenbank extrahiertes Paket verwendet die Werte aus der ursprünglichen Datenbank.A package extracted from an existing database uses the values from the original database.

  • Sie können einige der Datenbankeinstellungen, z. B. Datenbanknamen und Dateipfade, auf der Seite Konfiguration aktualisieren anpassen.You can adjust some of the database settings, such as database name and file paths, in the Update Configuration page. Beim Bereitstellen auf SQL-DatenbankSQL Databasekönnen Sie die Dateipfade nicht festlegen.You cannot set the file paths when deploying to SQL-DatenbankSQL Database.

Einige Datenbankoptionen, z. B. TRUSTWORTHY, DB_CHAINING und HONOR_BROKER_PRIORITY, können nicht im Rahmen des Bereitstellungsprozesses angepasst werden.Some database options, such as TRUSTWORTHY, DB_CHAINING, and HONOR_BROKER_PRIORITY, cannot be adjusted as part of the deployment process. 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.Physical properties, such as the number of filegroups, or the numbers and sizes of files cannot be altered as part of the deployment process. Nachdem die Bereitstellung abgeschlossen wurde, können Sie die ALTER DATABASE-Anweisung, SQL Server Management StudioSQL Server Management Studiooder PowerShell für SQL ServerSQL Server verwenden, um die Datenbank individuell anzupassen.After the deployment completes, you can use the ALTER DATABASE statement, SQL Server Management StudioSQL Server Management Studio, or SQL ServerSQL Server PowerShell to tailor the database.

EinschränkungenLimitations and restrictions

Eine DAC kann für SQL-DatenbankSQL Databasebereitgestellt werden, oder für eine Instanz von Datenbank-EngineDatabase Engine , die SQL Server 2005 (9.x)SQL Server 2005 (9.x) SP4 oder höher ausführt.A DAC can be deployed to SQL-DatenbankSQL Database, or an instance of the Datenbank-EngineDatabase Engine running SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 4 (SP4) or later. Wenn Sie eine DAC mit einer späteren Version erstellen, enthält die DAC möglicherweise Objekte, die von SQL Server 2005 (9.x)SQL Server 2005 (9.x)nicht unterstützt werden.If you create a DAC using a later version, the DAC may contain objects not supported by SQL Server 2005 (9.x)SQL Server 2005 (9.x). Sie können diese DACs nicht auf Instanzen von SQL Server 2005 (9.x)SQL Server 2005 (9.x)bereitstellen.You cannot deploy those DACs to instances of SQL Server 2005 (9.x)SQL Server 2005 (9.x).

Sicherheit und BerechtigungenSecurity and permissions

Anmeldenamen für die Authentifizierung werden ohne Kennwort in einem DAC-Paket gespeichert.Authentication logins are stored in a DAC package without a password. Sobald das Paket bereitgestellt oder aktualisiert wird, wird der Anmeldename als deaktivierter Anmeldename mit einem generierten Kennwort erstellt.When the package is deployed or upgraded, the login is created as a disabled login with a generated password. 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.To enable the logins, log in using a login with the ALTER ANY LOGIN permission and use ALTER LOGIN to enable the login and assign a new password that can be communicated to the user. Dies ist für Anmeldenamen der Windows-Authentifizierung nicht erforderlich, da die zugehörigen Kennwörter nicht von SQL Server verwaltet werden.This is not required for Windows Authentication logins because their passwords are not managed by SQL Server.

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.A DAC can only be deployed by members of the sysadmin or serveradmin fixed server roles, or by logins in the dbcreator fixed server role with ALTER ANY LOGIN permissions. Außerdem kann das integrierte SQL ServerSQL Server -Systemadministratorkonto mit der Bezeichnung sa zum Bereitstellen einer DAC verwendet werden.The built-in SQL ServerSQL Server system administrator account named sa can also deploy a DAC.

Um eine DAC mit Anmeldungen bei SQL-DatenbankSQL Database bereitstellen zu können, müssen Sie Mitglied der Rollen "loginmanager" oder "serveradmin" sein.Deploying a DAC with logins to SQL-DatenbankSQL Database requires membership in the loginmanager or serveradmin roles. Um eine DAC ohne Anmeldenamen in SQL-DatenbankSQL Database bereitstellen zu können, müssen Sie Mitglied der Rollen "dbmanager" oder "serveradmin" sein.Deploying a DAC without logins to SQL-DatenbankSQL Database requires membership in the dbmanager or serveradmin roles.

Bereitstellen einer DAC mithilfe des AssistentenDeploy a DAC using the wizard

  1. Erweitern Sie im Objekt-Explorerden Knoten für die Instanz, für die Sie die DAC bereitstellen möchten.In Object Explorer, expand the node for the instance to which you want to deploy the DAC.

  2. Klicken Sie mit der rechten Maustaste auf den Knoten Datenbanken, und wählen Sie Datenebenenanwendung bereitstellen... aus.Right-click the Databases node, then select Deploy Data-tier Application...

  3. Führen Sie die Dialogfenster des Assistenten aus, und klicken Sie auf „Fertig stellen“.Complete the wizard dialogs and click finish.

Wir hören Ihnen zu: Wenn Sie in diesem Artikel – beispielsweise in einem Schritt oder Codebeispiel – veraltete oder falsche Informationen finden, lassen Sie es uns bitte wissen.We are listening: If you find something outdated or incorrect in this article, such as a step or a code example, please tell us. Sie können unten auf dieser Seite im Abschnitt Feedback auf die Schaltfläche Diese Seite klicken.You can click the This page button in the Feedback section at the bottom of this page. Wir lesen jedes Feedback zu SQL in der Regel am nächsten Tag.We read every item of feedback about SQL, typically the next day. Vielen Dank.Thanks.

Im Folgenden erfahren Sie mehr über einige Seiten des Assistenten:More about some of the wizard pages below:

Seite "DAC-Paket auswählen"Select DAC Package Page

Geben Sie das DAC-Paket an, das die bereitzustellende Datenebenenanwendung enthält.Specify the DAC package that contains the data-tier application to be deployed. Die Seite durchläuft drei Statusübergänge.The page transitions through three states.

Auswählen des DAC-PaketsSelect the DAC Package

Wählen Sie das bereitzustellende DAC-Paket aus.Choose the DAC package to deploy. Das DAC-Paket muss eine gültige DAC-Paketdatei sein und die Erweiterung .dacpac aufweisen.The DAC package must be a valid DAC package file and must have a .dacpac extension.

DAC-Paket : Geben Sie den Pfad und den Dateinamen des DAC-Pakets an, das die bereitzustellende Datenebenenanwendung enthält.DAC Package - Specify the path and file name of the DAC package that contains the data-tier application to be deployed. Sie können die Schaltfläche Durchsuchen rechts neben dem Feld auswählen, um zum Speicherort des DAC-Pakets zu wechseln.You can select the Browse button at the right of the box to browse to the location of the DAC package.

Anwendungsname : Ein schreibgeschütztes Feld mit dem DAC-Namen, der beim Erstellen oder Extrahieren der DAC aus einer Datenbank zugewiesen wurde.Application Name - A read-only box that displays the DAC name assigned when the DAC was authored or extracted from a database.

Version : Ein schreibgeschütztes Feld mit der Version, die beim Erstellen oder Extrahieren der DAC aus einer Datenbank zugewiesen wurde.Version - A read-only box that displays the version assigned when the DAC was authored or extracted from a database.

Beschreibung : Ein schreibgeschütztes Feld mit der Beschreibung, die beim Erstellen oder Extrahieren der DAC aus einer Datenbank erstellt wurde.Description - A read-only box that displays the description written when the DAC was authored or extracted from a database.

Überprüfen des DAC-PaketsValidating the DAC Package

Zeigt eine Statusanzeige an, da der Assistent bestätigt, dass es sich bei der ausgewählten Datei um ein gültiges DAC-Paket handelt.Displays a progress bar as the wizard confirms that the selected file is a valid DAC package. 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.If the DAC package is validated, the wizard proceeds to the final version of the Select Package page where you can review the results of the validation. Wenn die Datei kein gültiges DAC-Paket ist, verbleibt der Assistent auf der Seite DAC-Paket auswählen.If the file is not a valid DAC package, the wizard remains on the Select DAC Package. Wählen Sie entweder ein anderes gültiges DAC-Paket aus, oder brechen Sie den Assistenten ab, und generieren Sie ein neues DAC-Paket.Either select another valid DAC package or cancel the wizard and generate a new DAC package.

Seite "Richtlinie überprüfen"Review Policy Page

Überprüfen Sie die Auswertungsergebnisse der DAC-Richtlinie zur Serverauswahl (falls verwendet).Review the results of evaluating the DAC server selection policy (if used). Die DAC-Richtlinie zur Serverauswahl ist optional und wird der DAC während der Erstellung in Visual Studio zugewiesen.The DAC server selection policy is optional, and is assigned to the DAC when it is created in Visual Studio. Die Richtlinie verwendet Facets für die Richtlinie zur Serverauswahl, um Bedingungen anzugeben, die eine Datenbank-EngineDatabase Engine -Instanz zum Hosten der DAC erfüllen sollte.The policy uses the server selection policy facets to specify conditions an instance of the Datenbank-EngineDatabase Engine should meet to host the DAC.

Auswertungsergebnisse der Richtlinienbedingungen: Zeigt an, ob die Bedingungen der Richtlinie zur DAC-Bereitstellung erfüllt sind.Evaluation results of policy conditions - Shows whether the DAC deployment policy conditions succeeded. Die Auswertungsergebnisse für die einzelnen Bedingungen werden in einer separaten Zeile angezeigt.The results of evaluating each condition are reported on a separate line.

Beim Bereitstellen von DAC auf SQL-DatenbankSQL Databaseergeben die folgenden Serverauswahlrichtlinien immer false: Betriebssystemversion, Sprache, Named Pipes aktiviert, Plattform und tcp aktiviert.The following server selection policies always evaluate to false when deploying a DAC to SQL-DatenbankSQL Database: operating system version, language, named pipes enabled, platform, and tcp enabled.

Richtlinienverletzungen ignorieren : Verwenden Sie dieses Kontrollkästchen, um mit der Bereitstellung fortzufahren, wenn eine oder mehrere Richtlinienbedingungen nicht erfüllt wurden.Ignore policy violations - Use this check box to proceed with the deployment if one or more of the policy conditions failed. Aktivieren Sie diese Option nur, wenn Sie sicher sind, dass keine der fehlgeschlagenen Bedingungen die erfolgreiche Ausführung der DAC verhindert.Only select this option if you are sure that all of the conditions which failed will not prevent the successful operation of the DAC.

Seite "Konfiguration aktualisieren"Update Configuration Page

Geben Sie die Namen der bereitgestellten DAC-Instanz und der bei der Bereitstellung erstellten Datenbank an, und legen Sie Datenbankoptionen fest.Specify the names of the deployed DAC instance and the database created by the deployment, and to set database options.

Datenbankname : Geben Sie den Namen der Datenbank an, die von der Bereitstellung erstellt werden soll.Database Name: - Specify the name of the database to be created by the deployment. Standardmäßig wird der Name der Quelldatenbank verwendet, aus der die DAC extrahiert wurde.The default is the name of the source database the DAC was extracted from. Der Name muss innerhalb der Datenbank-EngineDatabase Engine -Instanz eindeutig sein und den Regeln für Datenbank-EngineDatabase Engine -Bezeichner entsprechen.The name must be unique within the instance of the Datenbank-EngineDatabase Engine and comply with the rules for Datenbank-EngineDatabase Engine identifiers.

Wenn Sie den Datenbanknamen ändern, werden die Namen der Datendatei und der Protokolldateien entsprechend dem neuen Wert angepasst.If you change the database name, the names of the data file and log files will change to match the new value.

Der Datenbankname wird auch als Name der DAC-Instanz verwendet.The database name is also used as the name of the DAC instance. Der Instanzname wird im Knoten der DAC unter dem Knoten Datenebenenanwendungen im Objekt-Exploreroder im Knoten Bereitgestellte Datenebenenanwendungen im Hilfsprogramm-Explorerangezeigt.The instance name is displayed on the node for the DAC under the Data-tier Applications node in Object Explorer, or the Deployed Data-tier Applications node in the Utility Explorer.

Die folgenden Optionen gelten nicht für SQL-DatenbankSQL Databaseund werden beim Bereitstellen auf SQL-DatenbankSQL Databasenicht angezeigt.The following options do not apply to SQL-DatenbankSQL Database, and are not displayed when deploying to SQL-DatenbankSQL Database.

Standardspeicherort für Datenbankdatei verwenden : Wählen Sie diese Option aus, um die Datenbankdaten- und Protokolldateien am Standardspeicherort der Instanz des Datenbank-EngineDatabase Engines abzulegen.Use the default database location - Select this option to create the database data and log files in the default location for the instance of the Datenbank-EngineDatabase Engine. Die Dateinamen werden anhand des Datenbanknamens erstellt.The file names will be built using the database name.

Datenbankdateien angeben : Wählen Sie diese Option aus, um einen anderen Speicherort oder Namen für die Daten- und Protokolldateien anzugeben.Specify database files - Select this option to specify a different location or name for the data and log files.

Pfad und Name der Datendatei : Geben Sie den vollständigen Pfad- und Dateinamen für die Datendatei an.Data file path and name: - Specify the full path and file name for the data file. Das Feld wird mit dem Standardpfad und -dateinamen aufgefüllt.The box is populated with the default path and file name. 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.Edit the string in the box to change the default, or use the Browse button to navigate to the folder where the data file is to be placed.

Pfad und Name der Protokolldatei : Geben Sie den vollständigen Pfad- und Dateinamen für die Protokolldatei an.Log file path and name: - Specify the full path and file name for the log file. Das Feld wird mit dem Standardpfad und -dateinamen aufgefüllt.The box is populated with the default path and file name. 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.Edit the string in the box to change the default, or use the Browse button to navigate to the folder where the log file is to be placed.

Seite "Zusammenfassung"Summary Page

Verwenden Sie diese Seite, um die Aktionen zu überprüfen, die der Assistent beim Bereitstellen der DAC ausführt.Use this page to review the actions the wizard will take when deploying the DAC.

Die folgenden Einstellungen werden zur Bereitstellung der DAC verwendet.The following settings will be used to deploy your DAC. – Überprüfen Sie die angezeigten Informationen darauf, ob die ergriffenen Maßnahmen richtig sind.- Review the information displayed to ensure the actions taken will be correct. Im Fenster werden das ausgewählte DAC-Paket und der für die bereitgestellte DAC-Instanz ausgewählte Name angezeigt.The window displays the DAC package you selected, and the name you selected for the deployed DAC instance. Im Fenster werden auch die Einstellungen angezeigt, die beim Erstellen der mit der DAC verbundenen Datenbank verwendet werden.The window also displays the settings that will be used when creating the database associated with the DAC.

Seite "Bereitstellen"Deploy Page

Auf dieser Seite wird angegeben, ob der Bereitstellungsvorgang erfolgreich war oder fehlgeschlagen ist.This page reports the success or failure of the deploy operation.

DAC wird bereitgestellt : Gibt an, ob die Aktionen zur Bereitstellung der DAC erfolgreich oder fehlerhaft waren.Deploying the DAC - Reports the success or failure of each action taken to deploy the DAC. Überprüfen Sie die Informationen, um zu bestimmen, ob die einzelnen Aktionen erfolgreich waren oder fehlgeschlagen sind.Review the information to determine the success or failure of each action. Für alle Aktionen, die fehlerhaft waren, ist in der Spalte Ergebnis ein Link enthalten.Any action that encountered an error will have a link in the Result column. Klicken Sie auf den Link, um einen Bericht des für diese Aktion aufgetretenen Fehlers anzuzeigen.Select the link to view a report of the error for that action.

Bericht speichern : Klicken Sie auf diese Schaltfläche, um den Bereitstellungsbericht in einer HTML-Datei zu speichern.Save Report - Select this button to save the deployment report to an HTML file. In der Datei ist der Status der einzelnen Aktionen aufgeführt, einschließlich aller durch die Aktionen generierten Fehler.The file reports the status of each action, including all errors generated by any of the actions. Der Standardordner ist der Ordner "SQL Server Management Studio\DAC Packages" im Ordner "Dokumente" unter Ihrem Windows-Konto.The default folder is the SQL Server Management Studio\DAC Packages folder in the Documents folder of your Windows account.

Bereitstellen einer DAC mit PowerShellDeploy a DAC using PowerShell

  1. Erstellen Sie ein SMO-Serverobjekt, und legen Sie es auf die Instanz fest, auf der Sie die DAC bereitstellen möchten.Create a SMO Server object and set it to the instance to which you want to deploy the DAC.

  2. Öffnen Sie ein ServerConnection -Objekt, und stellen Sie eine Verbindung mit derselben Instanz her.Open a ServerConnection object and connect to the same instance.

  3. Laden Sie die DAC-Paketdatei mithilfe von System.IO.File .Use System.IO.File to load the DAC package file.

  4. Verwenden Sie add_DacActionStarted und add_DacActionFinished , um die DAC-Bereitstellungsereignisse zu abonnieren.Use add_DacActionStarted and add_DacActionFinished to subscribe to the DAC deployment events.

  5. Legen Sie die DatabaseDeploymentPropertiesfest.Set the DatabaseDeploymentProperties.

  6. Verwenden Sie die DacStore.Install -Methode zum Bereitstellen der DAC.Use the DacStore.Install method to deploy the DAC.

  7. Schließen Sie den Dateidatenstrom, der zum Lesen der DAC-Paketdatei verwendet wurde.Close the file stream used to read the DAC package file.

PowerShell-BeispielePowerShell examples

Im folgenden Beispiel wird eine DAC mit dem Namen "MyApplication" auf einer Standardinstanz von Datenbank-EngineDatabase Enginebereitgestellt, wobei eine DAC-Definition aus einem MyApplication.dacpac-Paket verwendet wird.The following example deploys a DAC named MyApplication on a default instance of the Datenbank-EngineDatabase Engine, using a DAC definition from a MyApplication.dacpac package.

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

Weitere InformationenMore information

Datenebenenanwendungen Data-tier Applications
Extrahieren einer DAC aus einer Datenbank Extract a DAC From a Database
DatenbankbezeichnerDatabase Identifiers