如何在生成的 DACPAC 文件中包含 Sql Permission Statement

Posted

技术标签:

【中文标题】如何在生成的 DACPAC 文件中包含 Sql Permission Statement【英文标题】:How to include Sql Permission Statement with the generated DACPAC file 【发布时间】:2021-09-11 13:52:22 【问题描述】:

当我尝试为我的源数据库创建 DACPAC 文件时,源数据库中存在的 SQL 用户权限未包含在内。每当我将源数据库 DACPAC 文件部署到目标数据库时,除了源数据库中存在的用户权限外,整个模式都会在我的目标数据库上正确创建。我已经尝试通过解压缩来检查我的源数据库 DACPAC 文件,并且模型文件中不包含用户权限。

我用来从源数据库生成 DACPAC 文件的脚本如下:

sqlpackage /a:extract /of:true /ssn:tcp:test.database.windows.net,1433 /sdn:source_db /su:admin /sp:password /tf:"C:\SQL Server Management Studio\DAC Packages\source.dacpac";

我用来将源数据库 DACPAC 文件部署到目标数据库的脚本如下:

sqlpackage /a:publish /sf:"C:\SQL Server Management Studio\DAC Packages\source.dacpac" /tsn:tcp:test.windows.net,1433 /tdn:target_db /tu:admin /tp:password

我应该在其中包含一些属性吗?

【问题讨论】:

【参考方案1】:

目前使用Azure SQL数据库中的DACPAC文件进行数据迁移,无法迁移用户和权限。

您需要手动创建用户或授予用户权限。没有办法可以包含用户权限。

【讨论】:

【参考方案2】:

DACPAC 没有安全对象作为 DACPAC 的一部分。我们需要将权限作为部署后脚本的一部分。我将提供示例安全活动作为部署后脚本的一部分。

    创建登录 创建用户 创建角色 角色、用户的权限 ...

【讨论】:

【参考方案3】:
sqlpackage /a:extract  /p:IgnorePermissions=false

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何在生成的 DACPAC 文件中包含 Sql Permission Statement的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 的发布配置文件中包含动态生成的文件

如何在 Maven 生成的 jar 中包含特定文件夹?

如何在“sbt dist”在目标/通用内部生成的脚本文件夹中包含一个附加文件?

如何连接相对路径或生成嵌套文件夹中包含的唯一标识符 svg?

在 SQL 请求中,如何查找字符串最后一部分中包含数字的所有记录(最后一个空格之后)

为Excel生成CSV文件,如何在值中包含换行符