DACPAC SQL 服务器删除模式权限

DACPAC SQL Server dropping schema permissions

我正在尝试在 Azure Data Studio 中使用 DACPAC 数据库项目。 到目前为止,除了将项目“发布”到实际数据库外,它工作正常。 当我生成增量脚本时,我看到所有模式的所有权限都被删除了。

我知道我可以排除某些对象:

但是,我更希望在数据库项目中的架构上也拥有数据库角色的权限。 当然,这里的顺序很重要。 (创建模式、创建用户、创建数据库角色、将用户添加到数据库角色、授予数据库角色对模式的权限)

如何(以及向哪个文件)向项目添加模式权限以及如何确保生成的 TSQL 语句以正确的顺序执行?

谢谢。

在链接的 QA 中查看 XML:有单独的 parameters

  • DropPermissionsNotInSource
  • DropRoleMembersNotInSource

以相反的方式在 sqlproj/publish.xml 中表示

    <DoNotDropRoleMembership>True</DoNotDropRoleMembership>
    <DoNotDropPermissions>True</DoNotDropPermissions>

通过将它们切换到“不删除”状态,您可以避免从部署中排除权限。因此,将创建新权限(在项目中定义但在目标服务器上缺失),但旧权限(在目标服务器上存在但在项目中缺失)将 not 被删除。角色成员资格也是如此。

发布脚本中的有效命令顺序由 SSDT 引擎保证。

不过,如果发布需要重新创建对象,目标服务器上的权限可能会丢失。例如,如果您更改 table-type,则引用过程将被删除并在类型重新创建后重新创建。