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
。知道为什么吗?它是否与我需要添加的一些标志有关,如此处所述:
我建议使用 /action:Script
(参见 here)来查看它将执行哪些操作,这很可能会给您一些关于哪些标志应该是 set/cleared 的线索。
-- 编辑
根据 this old answer,您可以在设计 .dacpac 时禁用部署数据库属性。
如果您想在发布 .dacpac 时覆盖此行为,您应该使用 ScriptDatabaseOptions
属性 - 请参阅此处的 whole list of switches。
我 运行 下面的 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
。知道为什么吗?它是否与我需要添加的一些标志有关,如此处所述:
我建议使用 /action:Script
(参见 here)来查看它将执行哪些操作,这很可能会给您一些关于哪些标志应该是 set/cleared 的线索。
-- 编辑
根据 this old answer,您可以在设计 .dacpac 时禁用部署数据库属性。
如果您想在发布 .dacpac 时覆盖此行为,您应该使用 ScriptDatabaseOptions
属性 - 请参阅此处的 whole list of switches。