Import a BACPAC File to Create a New User Database
Import a data-tier application (DAC) file – a .bacpac file – to create a copy of the original database, with the data, on a new instance of the Database Engine, or to Azure SQL Database. Export-import operations can be combined to migrate a DAC or database between instances, or to create a logical backup, such as creating an on-premise copy of a database deployed in SQL Database.
Before You Begin
The import process builds a new DAC in two stages.
The import creates a new DAC and associated database using the DAC definition stored in the export file, the same way a DAC deploy creates a new DAC from the definition in a DAC package file.
The import bulk copies in the data from the export file.
SQL Server Utility
If you import a DAC to a managed instance of the Database Engine, the imported 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. The DAC will then be present in the Deployed Data-tier Applications node of the Management Studio Utility Explorer and reported in the Deployed Data-tier Applications details page.
Database Options and Settings
By default, the database created during the import will have all of the default settings from the CREATE DATABASE statement, except that the database collation and compatibility level are set to the values defined in the DAC export file. A DAC export file uses the values from the original database.
Some database options, such as TRUSTWORTHY, DB_CHAINING, and HONOR_BROKER_PRIORITY, cannot be adjusted as part of the import process. Physical properties, such as the number of filegroups, or the numbers and sizes of files cannot be altered as part of the import process. After the import completes, you can use the ALTER DATABASE statement, SQL Server Management Studio, or SQL Server PowerShell to tailor the database. For more information, see Databases.
Limitations and restrictions
A DAC can be imported to SQL Database, or an instance of the Database Engine running SQL Server 2005 Service Pack 4 (SP4) or later. If you export a DAC from a higher version, the DAC may contain objects not supported by SQL Server 2005. You cannot deploy those DACs to instances of SQL Server 2005.
We recommend that you do not import a DAC export file from unknown or untrusted sources. Such files could contain malicious code that might execute unintended Transact-SQL code or cause errors by modifying the schema. Before you use an export file from an unknown or untrusted source, unpack the DAC and examine the code, like stored procedures and other user-defined code. For more information about how to perform these checks, see Validate a DAC Package.
To improve security, SQL Server Authentication logins are stored in a DAC export file without a password. When the file is imported, the login is created as a disabled login with a generated password. To enable the logins, log in using a login that has ALTER ANY LOGIN permission and use ALTER LOGIN to enable the login and assign a new password that can be communicated to the user. This is not needed for Windows Authentication logins because their passwords are not managed by SQL Server.
A DAC can only be imported by members of the sysadmin or serveradmin fixed server roles, or by logins that are in the dbcreator fixed server role and have ALTER ANY LOGIN permissions. The built-in SQL Server system administrator account named sa can also import a DAC. Importing a DAC with logins to SQL Database requires membership in the loginmanager or serveradmin roles. Importing a DAC without logins to SQL Database requires membership in the dbmanager or serveradmin roles.
Using the Import Data-tier Application Wizard
To launch the wizard, use the following steps:
Connect to the instance of SQL Server, whether on-premise or in SQL Database.
In Object Explorer, right-click on Databases, and then select the Import Data-tier Application menu item to launch the wizard.
Complete the wizard dialogs:
This page describes the steps for the Data-tier Application Import Wizard.
Do not show this page again. – Click the check box to stop the Introduction page from being displayed in the future.
Next – Proceeds to the Import Settings page.
Cancel – Cancels the operation and closes the wizard.
Use this page to specify the location of the .bacpac file to import.
Import from local disk – Click Browse… to navigate the local computer, or specify the path in the space provided. The path name must include a file name and the .bacpac extension.
Import from Azure – Imports a BACPAC file from a Microsoft Azure container. You must connect to an Microsoft Azure container to validate this option. Note that this option also requires that you specify a local directory for the temporary file. The temporary file will be created at the specified location and will remain there after the operation completes.
When browsing Azure, you will be able to switch between containers within a single account. You must specify a single .bacpac file to continue the import operation. Note that you can sort columns by Name, Size, or Date Modified.
To continue, specify the .bacpac file to import, and then click Open.
Use this page to specify details for the database that will be created.
For a local instance of SQL Server:
New database name – Provide a name for the imported database.
Data file path – Provide a local directory for data files. Click Browse… to navigate the local computer, or specify the path in the space provided.
Log file path – Provide a local directory for log files. Click Browse… to navigate the local computer, or specify the path in the space provided.
To continue, click Next.
For an Azure SQL Database:
- Import a BACPAC file to create a new Azure SQL database provides step by step instructions using the Azure portal, PowerShell, SSMS or SqlPackage.
- Consult SQL Database options and performance: Understand what's available in each service tier for a detailed look at the different service tiers.
Use this page to review any issues that block the operation. To continue, resolve blocking issues and then click Re-run Validation to ensure that validation is successful.
To continue, click Next.
Use this page to review the specified source and target settings for the operation. To complete the import operation using the specified settings, click Finish. To cancel the import operation and exit the wizard, click Cancel.
This page displays a progress bar that indicates the status of the operation. To view detailed status, click the View details option.
To continue, click Next.
This page reports the success or failure of the import and create database operations, showing the success or failure of each action. Any action that encountered an error will have a link in the Result column. Click the link to view a report of the error for that action.
Click Close to close the wizard.