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

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

  2. The import bulk copies in the data from the export file.

There is a sample application in the SQL Database Labs that can be used to test exporting and importing DACs and databases. For instructions on how to download and use the sample, see Database Import and Export for Windows Azure SQL Database.

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 exported a DAC from SQL Server 2012 or SQL Server 2008 R2, the DAC may contain objects not supported by SQL Server 2005. You cannot deploy those DACs to instances of SQL Server 2005.

Prerequisites

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.

Security

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.

Permissions

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:

  1. Connect to the instance of SQL Server, whether on-premise or in SQL Database.

  2. In Object Explorer, right-click on Databases and then select the Import database from BACPAC menu item to launch the Wizard.

  3. Complete the wizard dialogs:

    • Introduction Page

    • Import Settings Page

    • Database Settings Page

    • Summary Page

    • Progress Page

    • Results Page

Introduction Page

This page describes the steps for the Data-tier Application Import Wizard.

Options

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

Import Settings Page

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 Windows Azure – Imports a BACPAC file from a Windows Azure container. You must connect to a Windows Azure container in order 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 Windows 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.

Database Settings Page

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 a SQL Database:

  • New database name – Provide a name for the imported database.

  • Edition of SQL Database – Specify SQL Database Business or SQL Database Web. For more information about editions of SQL Database, see this SQL Database web site.

  • Maximum database size (GB) – Use the drop-down menu to specify the maximum size for your database.

To continue, click Next.

Validation Page

Use the validation 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.

Summary Page

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.

Progress Page

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.

Results Page

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.

See Also

Concepts

Data-tier Applications

Export a Data-tier Application