导入 BACPAC 文件以创建新的用户数据库

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例

导入数据层应用程序 (DAC) 文件 - .bacpac 文件 - 以在新的数据库引擎实例上创建一个带数据的原始数据库副本,或者将此副本创建到 Azure SQL 数据库。 可以将导出-导入操作结合起来在各实例之间迁移 DAC 或数据库,或者创建一个逻辑备份,例如创建部署在 SQL 数据库中的数据库本地副本。

开始之前

导入过程分两个阶段生成新的 DAC。

  1. 导入过程使用存储在导出文件中的 DAC 定义创建新的 DAC 和关联的数据库,同样,DAC 部署使用 DAC 包文件中的定义创建新的 DAC。

  2. 导入过程将从导出文件中大容量复制数据。

数据库选项和设置

默认情况下,在导入过程中创建的数据库将具有来自 CREATE DATABASE 语句的几乎所有默认设置,而例外的是数据库排序规则和兼容级别设置为在 DAC 导出文件中定义的值。 DAC 导出文件将使用来自原始数据库的值。

某些数据库选项(例如 TRUSTWORTHY、DB_CHAINING 和 HONOR_BROKER_PRIORITY)不能作为导入过程的一部分进行调整。 物理属性(如文件组的数目或文件的数目和大小)不能作为导入过程的一部分进行更改。 在导入完成后,可以使用 ALTER DATABASE 语句、SQL Server Management Studio 或 SQL Server PowerShell 对数据库进行定制。 有关详细信息,请参阅 Databases

限制和局限

可以将 DAC 导入 SQL 数据库或运行 SQL Server 2005 (9.x) Service Pack 4 (SP4) 或更高版本的数据库引擎实例。 如果从更高版本中导出 DAC,则 DAC 可能包含 SQL Server 2005 (9.x) 不支持的对象。 无法将这些 DAC 部署到 SQL Server 2005 (9.x) 实例。

先决条件

建议您不要从未知或不可信的来源导入 DAC 导出文件。 此类文件可能包含恶意代码,这些代码可能会执行非预期的 Transact-SQL 代码,或者通过修改架构导致错误。 在使用来自未知或不可信源的导出文件之前,请解压缩该 DAC 并检查代码,例如存储过程或者其他用户定义的代码。 有关如何执行这些检查的详细信息,请参阅 Validate a DAC Package

安全性

为了提高安全性,SQL Server 身份验证登录名存储在 DAC 导出文件中且没有密码。 在导入该文件时,登录名将作为含有生成的密码的已禁用登录名创建。 若要启用这些登录名,请使用具有 ALTER ANY LOGIN 权限的登录名登录,并且使用 ALTER LOGIN 来启用该登录名和分配可以传达给用户的新密码。 对于 Windows 身份验证登录名则无需执行此操作,因为 SQL Server 并不管理其密码。

权限

DAC 只能由 sysadminserveradmin 固定服务器角色的成员导入,或者由具有 dbcreator 固定服务器角色且具有 ALTER ANY LOGIN 权限的登录名导入。 名为 sa 的内置 SQL Server 系统管理员帐户也可以导入 DAC。 要将具有登录名的 DAC 导入 SQL 数据库,需要具有 loginmanager 或 serveradmin 角色的成员身份。 要将不具有登录名的 DAC 导入 SQL 数据库,需要具有 dbmanager 或 serveradmin 角色的成员身份。

使用导入数据层应用程序向导

若要启动向导,则使用以下步骤:

  1. 连接到 SQL Server 实例(无论是本地部署中还是在 SQL 数据库中)。

  2. 在“对象资源管理器” 中,右键单击“数据库” ,然后选择“导入数据层应用程序” 菜单项以启动向导。

  3. 完成向导对话框:

“简介”页

此页介绍“数据层应用程序导入向导”的各个步骤。

选项

  • 不再显示此页。 - 选择此复选框可以停止在将来显示“简介”页。

  • 下一步 - 进入“导入设置”页

  • 取消 - 取消操作并关闭向导。

“导入设置”页

使用此页可以指定要导入的 .bacpac 文件的位置。

  • 从本地磁盘导入 - 选择“浏览…”以在本地计算机上浏览,或指定所提供空间中的路径。 路径名必须包含文件名和 .bacpac 扩展名。

  • 从 Azure 导入 - 从 Microsoft Azure 容器中导入一个 BACPAC 文件。 必须连接到 Microsoft Azure 容器才能验证此选项。 请注意,“从 Azure 导入”选项还要求为临时文件指定一个本地目录。 将在指定位置创建临时文件,并且在操作完成后,临时文件将保留在该位置。

    在浏览 Azure 时,可以在单一帐户内的不同容器之间进行切换。 您必须指定一个单独的 .bacpac 文件以继续导入操作。 可以按“名称”、“大小”或“修改日期”对列进行排序

    要继续操作,请指定要导入的 .bacpac 文件,然后选择“打开”

“数据库设置”页

使用此页面可以指定将要创建的数据库的详细信息。

对于 SQL Server 的本地实例:

  • 新数据库名称 - 提供导入的数据库的名称。

  • 数据文件路径 - 提供数据文件的本地目录。 选择“浏览…”以在本地计算机上浏览,或指定所提供空间中的路径

  • 日志文件路径 - 提供日志文件的本地目录。 选择“浏览…”以在本地计算机上浏览,或指定所提供空间中的路径

若要继续操作,请选择“下一步”。

对于 Azure SQL 数据库:

“验证”页

使用此页可查看阻止操作的任何问题。 要继续操作,请解决阻塞性问题,然后选择“重新运行验证”确保验证成功。

若要继续操作,请选择“下一步”。

摘要页

使用此页可查看操作的指定的源和目标设置。 要使用指定设置完成导入操作,请选择“完成”。 要取消导入操作并退出向导,请选择“取消”

“进度”页

此页将显示一个指示操作状态的进度栏。 要查看详细状态,请选择“查看详细信息”选项

若要继续操作,请选择“下一步”。

“结果”页

此页将报告导入和创建数据库操作是成功还是失败,并显示各个操作的成功或失败。 遇到了错误的任何操作都将在 “结果” 列中具有一个链接。 选择该链接可以查看针对该操作的错误报告。

选择关闭以关闭向导。

另请参阅