DatenebenenanwendungenData-tier Applications

Dieses Thema gilt für: JaSQL ServerkeineAzure SQL-DatenbankkeineAzure SQL Data Warehouse keine Parallel DatawarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Eine Datenebenenanwendung (DAC) ist eine logische Datenbankverwaltungsentität, die alle SQL ServerSQL Server-Objekte definiert, beispielsweise Tabellen, Sichten und Instanzobjekte, einschließlich Anmeldenamen, die mit der Datenbank eines Benutzers verknüpft sind.A data-tier application (DAC) is a logical database management entity that defines all of the SQL ServerSQL Server objects - like tables, views, and instance objects, including logins – associated with a user’s database. Eine DAC ist eine in sich geschlossene Einheit der SQL ServerSQL Server-Datenbankbereitstellung, mit der Datenebenenentwickler und Datenbankadministratoren SQL ServerSQL Server-Objekte in ein portables Artefakt, das sog. "DAC-Paket", packen können. Selbiges ist auch als DACPAC bekannt.A DAC is a self-contained unit of SQL ServerSQL Server database deployment that enables data-tier developers and database administrators to package SQL ServerSQL Server objects into a portable artifact called a DAC package, also known as a DACPAC.

Ein BACPAC ist ein verwandtes Artefakt, das das Datenbankschema sowie die in der Datenbank gespeicherten Daten kapselt.A BACPAC is a related artifact that encapsulates the database schema as well as the data stored in the database.

Vorteile von DatenebenenanwendungenBenefits of Data-tier Applications

Der Lebenszyklus der meisten Datenbankanwendungen zwingt Entwickler und Datenbankadministratoren dazu, Skripts und Ad-hoc-Integrationsbenachrichtigungen für Anwendungsaktualisierungen und Wartungsaktivitäten freizugeben und auszutauschen.The lifecycle of most database applications involves developers and DBAs sharing and exchanging scripts and ad hoc integration notes for application update and maintenance activities. Dies stellt bei wenigen Datenbanken kein Problem dar. Es kann jedoch schnell dazu führen, dass sie nicht mehr skalierbar sind, wenn die Datenbanken in puncto Anzahl, Größe und Komplexität wachsen.While this is acceptable for a small number of databases, it quickly becomes unscalable once databases grow in number, size, and complexity.

Eine DAC ist ein Datenbank-Lebenszyklusverwaltungs- und Produktivitätstool, womit die Entwicklung deklarativer Datenbanken ermöglicht wird, um Entwicklung und Verwaltung zu vereinfachen.A DAC is a database lifecycle management and productivity tool that enables declarative database development to simplify deployment and management. Ein Entwickler kann eine Datenbank in einem SQL Server Data Tools-Datenbankprojekt erstellen und die Datenbank anschließend in einem DACPAC erstellen, um sie an einen Datenbankadministrator zu übergeben.A developer can author a database in SQL Server Data Tool database project and then build the database into a DACPAC for handoff to a DBA. Der Datenbankadministrator kann die DAC mit SQL Server Management Studio auf einer Test- oder Produktionsinstanz von SQL ServerSQL Server oder Azure SQL-DatenbankAzure SQL Database bereitstellen.The DBA can deploy the DAC using SQL Server Management Studio to a test or production instance of SQL ServerSQL Server or Azure SQL-DatenbankAzure SQL Database. Der Datenbankadministrator kann alternativ mit SQL Server Management Studio mithilfe des DACPAC eine zuvor bereitgestellte Datenbank aktualisieren.Alternatively, the DBA can use the DACPAC to upgrade a previously deployed database using SQL Server Management Studio. Zum Abschließen des Lebenszyklus kann der Datenbankadministrator die Datenbank in einen DACPAC extrahieren und sie einem Entwickler übergeben, damit entweder Test- oder Produktionsanpassungen reflektiert werden oder weitere Datenbankentwurfsänderungen als Reaktion auf Änderungen in der Anwendung ermöglicht werden können.To complete the lifecycle, the DBA can extract the database into a DACPAC and hand it off to a developer to either reflect test or production adjustments, or to enable further database design changes in response to changes in the application.

Der Vorteil einer DAC-gesteuerten Bereitstellung im Gegensatz zu einer skriptgesteuerten Bereitstellung besteht darin, dass das Tool dem Datenbankadministrator beim Identifizieren und Überprüfen von Verhaltensweisen verschiedener Quell- und Zieldatenbanken behilflich ist.The advantage of a DAC-driven deployment over a script driven exercise is that the tool helps the DBA with identifying and validating behaviors from different source and target databases. Während der Upgrades warnt das Tool den Datenbankadministrator, wenn das Upgrade Datenverlust verursachen könnte, und es stellt auch einen Upgradeplan bereit.During upgrades, the tool warns the DBA if the upgrade might cause data loss, and also provide an upgrade plan. Der Datenbankadministrator kann den Plan auswerten und dann das Tool verwenden, um mit dem Upgrade fortzufahren.The DBA can evaluate the plan and then utilize the tool to proceed with the upgrade.

Der DAC unterstützt auch die Versionsverwaltung, um dem Entwickler und dem Datenbankadministrator zu helfen, die Datenbankherkunft während des Lebenszyklus zu warten und zu verwalten.DAC’s also support versioning to help the developer and the DBA maintain and manage the database lineage through its lifecycle.

Konzepte von DACDAC Concepts

Eine DAC vereinfacht die Entwicklung, Bereitstellung und Verwaltung der Datenebenenelemente, die eine Anwendung unterstützen:A DAC simplifies the development, deployment, and management of data-tier elements that support an application:

  • Eine Datenebenenanwendung (DAC) ist eine logische Datenbankverwaltungsentität, die alle SQL Server-Objekte definiert, beispielsweise Tabellen, Sichten und Instanzobjekte, einschließlich Anmeldenamen, die mit der Datenbank eines Benutzers verknüpft sind.A data-tier application (DAC) is a logical database management entity that defines all SQL Server objects - such as tables, views, and instance objects – associated with a user’s database. Sie ist eine in sich geschlossene Einheit der SQL Server-Datenbankbereitstellung, mit der Datenebenenentwickler und Datenbankadministratoren SQL Server-Objekte in ein portables Artefakt, das sog. "DAC-Paket" oder die sog. DACPAC-Datei, packen können.It is a self-contained unit of SQL Server database deployment that enables data-tier developers and DBAs to package SQL Server objects into a portable artifact called a DAC package, or .dacpac file.

  • Damit eine SQL Server-Datenbank als DAC behandelt wird, muss sie registriert werden, und zwar entweder explizit durch einen Benutzervorgang oder implizit durch eine der DAC-Vorgänge.For a SQL Server database to be treated as a DAC, it must be registered – either explicitly by a user operation, or implicitly by one of the DAC operations. Wenn eine Datenbank registriert wird, werden die DAC-Version und andere Eigenschaften als Teil der Metadaten der Datenbank aufgezeichnet.When a database is registered, the DAC version and other properties are recorded as part of the metadata of the database. Umgekehrt kann die Registrierung einer Datenbank auch aufgehoben werden, wodurch die DAC-Eigenschaften entfernt werden.Conversely, a database can also be unregistered and have its DAC properties removed.

  • Im Allgemeinen können DAC-Tools DACPAC-Dateien lesen, die von DAC-Tools früherer SQL Server-Versionen generiert wurden. Zudem können von den DAC-Tools DACPAC-Dateien für frühere Versionen von SQL Server bereitgestellt werden.In general, DAC tools are capable of reading DACPAC files generated by DAC tools from previous SQL Server versions, and can also deploy DACPAC’s to previous versions of SQL Server. Demgegenüber können DAC-Tools früherer Versionen keine DACPAC-Dateien lesen, die mit höheren DAC-Tool-Versionen generiert wurden.However, DAC tools from earlier versions cannot read DACPAC files generated by DAC tools from later versions. Dies gilt insbesondere in folgenden Fällen:Specifically:

    • DAC-Vorgänge wurden in SQL Server 2008 R2 eingeführt.DAC operations were introduced in SQL Server 2008 R2. Zusätzlich zu SQL Server 2008 R2-Datenbanken unterstützen die Tools die Generierung der DACPAC-Dateien von SQL Server 2008, SQL Server 2005 und SQL Server 2000-Datenbanken.In addition to SQL Server 2008 R2 databases, the tools support generation of DACPAC files from SQL Server 2008, SQL Server 2005 and SQL Server 2000 databases.

    • Zusätzlich zu SQL Server 2016-Datenbanken können die im Lieferumfang von SQL Server 2016 enthaltenen Tools durch DAC-Tools, die im Lieferumfang von SQL Server 2008 R2 oder SQL Server 2012 enthalten sind, generierte DACPAC-Dateien lesen.In addition to SQL 2016 databases, the tools shipped with SQL Server 2016 can read DACPAC files generated by DAC tools shipped with SQL Server 2008 R2 or SQL Server 2012. Dies schließt Datenbanken von SQL Server 2014, 2012, 2008 R2, 2008 und 2005 ein, aber nicht SQL Server 2000.This includes databases from SQL Server 2014, 2012, 2008 R2, 2008, and 2005, but not SQL Server 2000.

    • DAC-Tools von SQL Server 2008 R2 können keine DACPAC-Dateien lesen, die von SQL Server 2012 (11.x)SQL Server 2012 (11.x)- oder SQL Server 2017SQL Server 2017-Tools generiert wurden.DAC tools from SQL Server 2008 R2 cannot read DACPAC files generated by tools from SQL Server 2012 (11.x)SQL Server 2012 (11.x) or SQL Server 2017SQL Server 2017.

  • Ein DACPAC ist eine Windows-Datei mit einer Erweiterung DACPAC.A DACPAC is a Windows file with a .dacpac extension. Die Datei unterstützt ein offenes Format. Es besteht aus mehreren XML-Abschnitten, die Details der DACPAC-Herkunft bereitstellen, sowie den Objekten in der Datenbank und anderen Eigenschaften.The file supports an open format consisting of multiple XML sections representing details of the DACPAC origin, the objects in the database, and other characteristics. Ein erfahrener Benutzer kann die Datei mit dem Hilfsprogramm "DacUnpack.exe" entpacken, das mit dem Produkt geliefert wird, um jeden Abschnitt genauer zu überprüfen.An advanced user can unpack the file using the DacUnpack.exe utility that ships with the product to inspect each section more closely.

  • Der Benutzer muss ein Mitglied der dbmanager-Rolle sein, oder er muss der CREATE DATABASE-Berechtigung zugeordnet sein, um eine Datenbank zu erstellen, einschließlich dem Erstellen einer Datenbank durch Bereitstellen eines DAC-Pakets.The user must be a member of the dbmanager role or assigned CREATE DATABASE permissions to create a database, including creating a database by deploying a DAC package. Der Benutzer muss ein Mitglied der dbmanager-Rolle sein, oder er muss der DROP DATABASE-Berechtigung zugeordnet sein, um eine Datenbank löschen zu können.The user must be a member of the dbmanager role, or have been assigned DROP DATABASE permissions to drop a database.

DAC-ToolsDAC Tools

Ein DACPAC kann nahtlos von mehreren Tools, die im Lieferumfang von SQL Server 2017SQL Server 2017 enthalten sind, verwendet werden.A DACPAC can be seamlessly used across multiple tools that ship with SQL Server 2017SQL Server 2017. Diese Tools erfüllen die Anforderungen verschiedener physischer Benutzer, indem DACPAC als interoperable Einheit verwendet wird.These tools address the requirements of different user personas using a DACPAC as the unit of interoperability.

  • Anwendungsentwickler:Application Developers:

    • Sie können mithilfe eines SQL Server-Datentools-Datenbankprojekts eine Datenbank entwerfen.Can use a SQL Server Data Tools database project to design a database. Eine erfolgreiche Erstellung dieses Projekts ergibt sich in der Generierung von einem DACPAC, der in einer DACPAC-Datei enthalten hat.A successful build of this project results in the generation of a DACPAC contained in a .dacpac file.

    • Sie können einen DACPAC in ein Datenbankprojekt importieren und weiterhin die Datenbank entwerfen.Can import a DACPAC into a database project and continue to design the database.

      SQL Server Data Tools unterstützt auch Local DB für eine nicht verbundene, clientseitige Datenbankanwendungsentwicklung.SQL Server Data Tools also supports a Local DB for unconnected, client-side database application development. Der Entwickler kann eine Momentaufnahme dieser lokalen Datenbank erstellen, um in einer DACPAC-Datei enthaltenen DACPAC zu erstellen.The developer can take a snapshot of this local database to create DACPAC contained in a .dacpac file.

    • Unabhängig davon kann der Entwickler ein Datenbankprojekt direkt in einer Datenbank veröffentlichen, und zwar ohne ein DACPAC zu generieren.Independently, the developer can publish a database project directly to a database without even generating a DACPAC. Der Veröffentlichungsvorgang weist ein ähnliches Verwalten auf wie der Bereitstellungsvorgang anderer Tools.The publish operation follows similar behavior as the deploy operation from other tools.

  • Datenbankadministratoren:Database Administrators:

    • Sie können einen DACPAC mithilfe von SQL Server Management Studio aus einer vorhandenen Datenbank extrahieren und auch andere DAC-Vorgänge ausführen.Can use SQL Server Management Studio to extract a DACPAC from an existing database, and also perform other DAC operations.

    • Außerdem kann der Datenbankadministrator für eine SQL-DatenbankSQL Database das Verwaltungsportal für SQL Azure für DAC-Vorgänge verwenden.In addition, the DBA for a SQL-DatenbankSQL Database can use the Management Portal for SQL Azure for DAC operations.

  • Unabhängige Softwareanbieter:Independent Software Vendors:

    • Hostende Dienste und andere Datenverwaltungsprodukte für SQL Server können die DACFx-API für DAC-Vorgänge verwenden.Hosting services and other data management products for SQL Server can use the DACFx API for DAC operations.
  • IT-Administratoren:IT Administrators:

    • IT-Systemintegratoren und -Administratoren können das Befehlszeilentool "SqlPackage.exe" für DAC-Vorgänge verwenden.IT systems integrators and administrators can use the SqlPackage.exe command line tool for DAC operations.

DAC-VorgängeDAC Operations

Ein DAC unterstützt die folgenden Vorgänge:A DAC supports the following operations:

  • EXTRACT: Der Benutzer kann eine Datenbank in eine DACPAC-Datei extrahieren.EXTRACT – the user can extract a database into a DACPAC.

  • DEPLOY: Der Benutzer kann eine DACPAC-Datei auf einem Hostserver bereitstellen.DEPLOY – the user can deploy a DACPAC to a host server. Wenn die Bereitstellung in einem Verwaltbarkeitstool wie SQL Server Management Studio oder dem Verwaltungsportal für SQL Azure ausgeführt wird, wird die resultierende Datenbank im Hostserver implizit als Datenebenenanwendung registriert.When the deployment is done from a manageability tool like SQL Server Management Studio or the Management Portal for SQL Azure, the resulting database in the host server is implicitly registered as a data-tier application.

  • REGISTER: Der Benutzer kann eine Datenbank als Datenebenenanwendung registrieren.REGISTER – the user can register a database as a data-tier application.

  • UNREGISTER: Die Registrierung einer zuvor als DAC registrierten Datenbank kann aufgehoben werden.UNREGISTER – a database previously registered as a DAC can be unregistered.

  • UPGRADE: Eine Datenbank kann mit einer DACPAC-Datei aktualisiert werden.UPGRADE – a database can be upgraded using a DACPAC. Ein Upgrade wird sogar auf Datenbanken, die zuvor nicht als Datenebenenanwendungen registriert waren, unterstützt, doch aufgrund des Upgrades wird die Datenbank implizit registriert.Upgrade is supported even on databases that are not previously registered as data-tier applications, but as a consequence of the upgrade, the database will be implicitly registered.

BACPACBACPAC

Eine BACPAC-Datei ist eine Windows-Datei mit der Erweiterung ".bacpac", die das Schema und die Daten einer Datenbank kapselt.A BACPAC is a Windows file with a .bacpac extension that encapsulates a database's schema and data. Der Hauptzweck einer BACPAC-Datei besteht darin, eine Datenbank von einem Server auf einen anderen zu verschieben – oder eine Datenbank von einem lokalen Server zur Cloud zu migrieren – und eine vorhandene Datenbank in einem offenen Format zu archivieren.The primary use case for a BACPAC is to move a database from one server to another - or to migrate a database from a local server to the cloud - and archiving an existing database in an open format.

Das BACPAC-Dateiformat ist ein offenes Dateiformat (vergleichbar mit DACPAC). Die Schemainhalte von BACPAC sind mit DACPAC identisch.Similar to the DACPAC, the BACPAC file format is open – the schema contents of the BACPAC are identical to that of the DACPAC. Die Daten in einer BACPAC-Datei werden im JSON-Format gespeichert.The data in a BACPAC is stored in JSON format.

DACPAC und BACPAC sind ähnlich, aber sie zielen auf andere Szenarien ab.DACPAC and BACPAC are similar but they target different scenarios. Ein DACPAC dient zum Erfassen und Bereitstellen von Schemas, einschließlich der Aktualisierung einer vorhandenen Datenbank.A DACPAC is focused on capturing and deploying schema, including upgrading an existing database. DACPAC-Dateien werden primär zum Bereitstellen eines streng definierten Schemas für die Entwicklung, Tests und anschließenden Produktionsumgebungen genutzt.The primary use case for a DACPAC is to deploy a tightly defined schema to development, test, and then to production environments. Umgekehrt kann das Produktionsschema erfasst und erneut in Test- und Entwicklungsumgebungen angewendet werden.And also the reverse: capturing production’s schema and applying it back to test and development environments.

Eine BACPAC-Datei dient andererseits der Erfassung von Schemas und Daten. Dabei werden zwei Hauptoperationen unterstützt.A BACPAC, on the other hand, is focused on capturing schema and data supporting two main operations:

  • EXPORT: Der Benutzer kann das Schema und die Daten einer Datenbank in eine BACPAC-Datei exportieren.EXPORT– The user can export the schema and the data of a database to a BACPAC.

  • IMPORT: Der Benutzer kann das Schema und die Daten in eine neue Datenbank auf dem Hostserver importieren.IMPORT – The user can import the schema and the data into a new database in the host server.

    Beide Funktionen werden von den Datenbankverwaltungstools unterstützt: SQL Server Management Studio, das Azure-Portal und die DACFx-API.Both these capabilities are supported by the database management tools: SQL Server Management Studio, the Azure Portal, and the DACFx API.

BerechtigungenPermissions

Der Benutzer muss Mitglied der dbmanager-Rolle sein oder CREATE DATABASE-Berechtigungen erhalten haben, um eine Datenbank erstellen zu können. Dies gilt auch für das Erstellen einer Datenbank durch Bereitstellen eines DAC-Pakets.You must be a member of the dbmanager role or assigned CREATE DATABASE permissions to create a database, including creating a database by deploying a DAC package. Der Benutzer muss Mitglied der dbmanager-Rolle sein oder DROP DATABASE-Berechtigungen erhalten haben, um eine Datenbank löschen zu können.You must be a member of the dbmanager role, or have been assigned DROP DATABASE permissions to drop a database.

Tasks der DatenebenenanwendungData-tier Application Tasks

TaskTask ThemenlinkTopic Link
Beschreibt, wie eine DAC-Paketdatei zum Erstellen einer neuen DAC-Instanz verwendet wird.Describes how to use a DAC package file to create a new DAC instance. Bereitstellen einer DatenebenenanwendungDeploy a Data-tier Application
Beschreibt, wie eine neue DAC-Paketdatei zum Aktualisieren einer Instanz auf eine neue Version der DAC verwendet wird.Describes how to use a new DAC package file to upgrade an instance to a new version of the DAC. Upgrade einer DatenebenenanwendungUpgrade a Data-tier Application
Beschreibt, wie eine DAC-Instanz entfernt wird.Describes how to remove a DAC instance. Sie können auswählen, ob Sie die zugeordnete Datenbank auch trennen oder löschen möchten, oder ob die Datenbank intakt bleiben soll.You can choose to also detach or drop the associated database, or leave the database intact. Löschen einer DatenebenenanwendungDelete a Data-tier Application
Beschreibt, wie die Integrität derzeit bereitgestellter DACs mithilfe des SQL Server-Hilfsprogramms angezeigt wird.Describes how to view the health of currently deployed DACs by using the SQL Server Utility. Überwachen von DatenebenenanwendungenMonitor Data-tier Applications
Beschreibt, wie eine BACPAC-Datei erstellt wird, die ein Archiv der Daten und Metadaten einer DAC enthält.Describes how to create a .bacpac file that contains an archive of the data and metadata in a DAC. Exportieren einer DatenebenenanwendungExport a Data-tier Application
Beschreibt, wie mit einer DAC-Archivdatei (.bacpac) entweder eine logische Wiederherstellung einer DAC ausgeführt wird oder die DAC auf einer anderen Instanz von DatenbankmodulDatabase Engine oder SQL-DatenbankSQL Database migriert wird.Describes how to use a DAC archive file (.bacpac) to either perform a logical restore of a DAC, or to migrate the DAC to another instance of the DatenbankmodulDatabase Engine or SQL-DatenbankSQL Database. Importieren einer BACPAC-Datei zum Erstellen einer neuen BenutzerdatenbankImport a BACPAC File to Create a New User Database
Beschreibt, wie eine BACPAC-Datei importiert wird, um eine neue Benutzerdatenbank innerhalb einer Instanz von SQL ServerSQL Server zu erstellen.Describes how to import a BACPAC file to create a new user database within an instance of SQL ServerSQL Server. Extrahieren einer DAC aus einer DatenbankExtract a DAC From a Database
Beschreibt, wie eine vorhandene Datenbank auf eine DAC-Instanz heraufgestuft wird.Describes how to promote an existing database to be a DAC instance. Eine DAC-Definition wird in der Systemdatenbank erstellt und gespeichert.A DAC definition is built and stored in the system databases. Registrieren einer Datenbank als DACRegister a Database As a DAC
Beschreibt, wie vor der Verwendung eines DAC-Pakets in einem Produktionssystem sein Inhalt und die Aktionen überprüft werden, die bei einem DAC-Upgrade ausgeführt werden.Describes how to review the contents of a DAC package and the actions a DAC upgrade will perform before using the package in a production system. Überprüfen eines DAC-PaketsValidate a DAC Package
Beschreibt, wie der Inhalt eines DAC-Pakets in einem Ordner abgelegt wird, in dem ein Datenbankadministrator vor der Bereitstellung auf einem Produktionsserver überprüfen kann, was die DAC bewirkt.Describes how to place the contents of a DAC package into a folder where a database administrator can review what the DAC does before deploying it to a production server. Entpacken eines DAC-PaketsUnpack a DAC Package
Beschreibt die Verwendung eines Assistenten, um eine vorhandene Datenbank bereitzustellen.Describes how to use a wizard to deploy an existing database. Der Assistent führt die Bereitstellung mithilfe von DACs aus.The wizard uses DACs to perform the deployment. Bereitstellen einer Datenbank mit DACDeploy a Database By Using a DAC

Siehe auchSee also

DAC-Unterstützung für SQL Server-Objekte und -VersionenDAC Support For SQL Server Objects and Versions