sqlpackage 发布操作权限问题

sqlpackage publish action permissions issue

我 运行 下面的 sqlpackage 命令针对我的 sqlserver:

 sqlpackage /action:Publish /SourceFile:"Database Services\bin\Release\Database Services.dacpac" /TargetConnectionString:"Data Source=${Env};Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False;Initial catalog=${Target}"

它包含一个 predeploy 脚本和一个修改。 但是,我在错误中看到它试图 alter 整个 DB(向上一级),而不是仅在 table 上执行 alter。知道为什么吗?它是否与我需要添加的一些标志有关,如此处所述:

https://docs.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-publish?view=sql-server-ver15#properties-specific-to-the-publish-action

我建议使用 /action:Script(参见 here)来查看它将执行哪些操作,这很可能会给您一些关于哪些标志应该是 set/cleared 的线索。

-- 编辑 根据 this old answer,您可以在设计 .dacpac 时禁用部署数据库属性。
如果您想在发布 .dacpac 时覆盖此行为,您应该使用 ScriptDatabaseOptions 属性 - 请参阅此处的 whole list of switches