部署数据层应用程序

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Microsoft Fabric 中的 SQL 数据库

通过 SQL Server Management Studio 或 Visual Studio SQL Server Data Tools 中的向导,可以将注册的数据层应用程序(DAC)从 DAC 包部署或发布到现有的数据库引擎实例或 Azure SQL 数据库。 发布作以增量方式更新数据库架构,以匹配源 .dacpac 文件的架构。 如果服务器上不存在数据库,发布作会创建它。

部署过程通过将 DAC 定义存储在 msdb 系统数据库中(SQL 数据库中master)来注册 DAC 实例;创建一个数据库,然后使用 DAC 中定义的所有数据库对象填充该数据库。

可以将同一 DAC 包多次部署到单个数据库引擎实例,但每次只能运行一个部署。 为每个部署指定的 DAC 实例名称在数据库引擎的实例中必须是唯一的。

数据库选项和设置

默认情况下,在部署期间创建的数据库具有 CREATE DATABASE 语句中的所有默认设置,但以下情况除外:

  • 数据库排序规则和兼容性级别设置为 DAC 包中定义的值。 从 SQL Server 开发人员工具中的数据库项目生成的 DAC 包使用数据库项目中设置的值。 从现有数据库提取的包使用原始数据库中的值。

  • 可以在 更新配置 页中调整某些数据库设置,例如数据库名称和文件路径。 部署到 SQL 数据库时,无法设置文件路径。

某些数据库选项(如 TRUSTWORTHY、DB_CHAINING和HONOR_BROKER_PRIORITY)无法作为部署过程的一部分进行调整。 物理属性(如文件组数)或文件的数量和大小无法在部署过程中更改。 部署完成后,可以使用 ALTER DATABASE 语句、SQL Server Management Studio 或 SQL Server PowerShell 来定制数据库。

安全性和权限

身份验证登录名存储在没有密码的 DAC 包中。 当包被部署或升级时,将创建一个处于禁用状态的登录名,并为其生成密码。 若要启用登录名,请使用 ALTER ANY LOGIN 权限登录并使用 ALTER LOGIN 启用登录名,并分配可以与用户通信的新密码。 Windows 身份验证登录不需要这样做,因为它们的密码不是由 SQL Server 管理的。

DAC 只能由 sysadminserveradmin 固定服务器角色的成员部署,或者由属于 dbcreator 固定服务器角色并具有 ALTER ANY LOGIN 权限的登录名部署。 名为 sa 的内置 SQL Server 系统管理员帐户也可以部署 DAC。

将带登录名的 DAC 部署到 SQL 数据库需要 loginmanager 或 serveradmin 角色的成员身份。 在不登录到 SQL 数据库的情况下部署 DAC 需要 dbmanager 或 serveradmin 角色的成员身份。

部署 DAC

  1. 对象资源管理器中,展开要向其部署 DAC 的实例的节点。

  2. 右键单击 “数据库” 节点,然后选择“部署数据层应用程序...”

  3. 完成向导对话框,然后选择“完成”。

下面的部分向导页的详细信息:

“选择 DAC 包”页

指定包含要部署的数据层应用程序的 DAC 包。 页面切换至三种状态。

选择 DAC 包

选择要部署的 DAC 包。 DAC 包必须是有效的 DAC 包文件,并且必须具有 .dacpac 扩展名。

DAC 包 - 指定包含要部署的数据层应用程序的 DAC 包的路径和文件名。 您可以选择框右侧的“浏览”按钮以便浏览到 DAC 包的位置。

应用程序名称 - 一个只读框,显示从数据库中创作或提取 DAC 时分配的 DAC 名称。

版本 - 一个只读框,用于显示从数据库创作或提取 DAC 时分配的版本。

说明 - 一个只读框,显示在创作或从数据库中提取 DAC 时写入的说明。

验证 DAC 包

当向导确认所选文件是有效的 DAC 包时,将显示进度栏。 如果验证 DAC 包,向导将转到 选择包 页的最终版本,可在其中查看验证结果。 如果该文件不是有效的 DAC 包,则向导会保持在“选择 DAC 包”页上。 选择另一个有效的 DAC 包或取消向导并生成新的 DAC 包。

“查看策略”页

查看评估 DAC 服务器选择策略的结果(如果使用)。 DAC 服务器选择策略是可选的,在 Visual Studio 中创建 DAC 时会分配给该 DAC。 该策略使用服务器选择策略方面来指定数据库引擎实例应满足的条件来托管 DAC。

策略条件的评估结果 - 显示 DAC 部署策略条件是否成功。 将在单独的行上报告对每个条件进行评估的结果。

将 DAC 部署到 SQL 数据库时,以下服务器选择策略始终评估为 false:操作系统版本、语言、已启用命名管道、平台和已启用的 TCP。

忽略策略冲突 - 如果一个或多个策略条件失败,请使用此复选框继续部署。 仅当确定所有失败的条件不会阻止 DAC 的成功作时,才选择此选项。

“更新配置”页

指定部署的 DAC 实例的名称和部署创建的数据库,并设置数据库选项。

数据库名称: - 指定要由部署创建的数据库的名称。 默认值为从中提取 DAC 的源数据库的名称。 该名称在数据库引擎实例中必须是唯一的,并且符合数据库引擎标识符的规则。

如果更改数据库名称,数据文件和日志文件的名称将更改为与新值匹配。

数据库名称也用作 DAC 实例的名称。 实例名称显示在 对象资源管理器数据层应用程序 节点下的 DAC 节点上。

以下选项不适用于 SQL 数据库,部署到 SQL 数据库时不显示。

使用默认数据库位置 - 选择此选项可在数据库引擎实例的默认位置创建数据库数据和日志文件。 文件名是使用数据库名称生成的。

指定数据库文件 - 选择此选项可为数据和日志文件指定不同的位置或名称。

数据文件路径和名称: - 指定数据文件的完整路径和文件名。 该框使用默认路径和文件名填充。 编辑框中的字符串以更改默认值,或使用“浏览”按钮导航到要放置数据文件的文件夹。

日志文件路径和名称: - 指定日志文件的完整路径和文件名。 该框使用默认路径和文件名填充。 编辑框中的字符串以更改默认值,或使用“浏览”按钮导航到要放置日志文件的文件夹。

摘要页

使用此页面查看向导在部署 DAC 时执行的操作。

以下设置将用于部署 DAC。 - 查看显示的信息,以确保所采取的行动是正确的。 该窗口显示所选的 DAC 包,以及为已部署的 DAC 实例选择的名称。 该窗口还显示创建与 DAC 关联的数据库时将使用的设置。

“部署”页

此页面报告部署作的成功或失败。

“部署 DAC”- 报告为部署 DAC 而执行的每个操作是成功还是失败。 查看信息以确定每个行动的成功或失败。 任何出错的操作在 结果 列中都有一个链接。 选择链接以查看该操作的错误报告。

保存报表 - 选择此按钮将部署报表保存到 HTML 文件。 该文件报告每个动作的状态,包括每个动作生成的所有错误。 默认文件夹是 Windows 帐户的 Documents 文件夹中的 SQL Server Management Studio\DAC Packages 文件夹。