【问题标题】:sqlpackage publish action permissions issuesqlpackage发布操作权限问题
【发布时间】:2021-08-31 05:00:57
【问题描述】:

我正在针对我的sqlserver 运行以下sqlpackage 命令:

 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。 但是,我在错误中看到它尝试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

【问题讨论】:

    标签: sql-server sqlpackage


    【解决方案1】:

    我建议使用/action:Script(请参阅here)来查看它将执行哪些操作,这很可能会为您提供一些关于应该设置/清除哪些标志的线索。

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

    【讨论】:

    • Tnx,你帮助我专注于真正的问题。为什么创建此部分以及哪个标志可以阻止它:IF EXISTS (SELECT 1 FROM [master].[dbo].[sysdatabases] WHERE [name] = N'$(DatabaseName)') BEGIN ALTER DATABASE [$(DatabaseName)] SET ANSI_NULL_DEFAULT ON WITH ROLLBACK IMMEDIATE; END
    • Tnx 很多!我现在能够理解它是从哪里来的。我可以使用您的帮助解决另一个未解决的问题吗? stackoverflow.com/questions/67956360/…
    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2013-05-04
    • 1970-01-01
    相关资源
    最近更新 更多