如何在生成的 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 的发布配置文件中包含动态生成的文件
如何在“sbt dist”在目标/通用内部生成的脚本文件夹中包含一个附加文件?
如何连接相对路径或生成嵌套文件夹中包含的唯一标识符 svg?