【问题标题】:How to include Sql Permission Statement with the generated DACPAC file如何在生成的 DACPAC 文件中包含 Sql Permission Statement
【发布时间】: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

我应该在其中包含一些属性吗?

【问题讨论】:

    标签: azure-sql-database dacpac sqlpackage


    【解决方案1】:

    目前使用Azure SQL数据库中的DACPAC文件进行数据迁移,无法迁移用户和权限。

    您需要手动创建用户或授予用户权限。没有办法可以包含用户权限。

    【讨论】:

      【解决方案2】:

      DACPAC 没有安全对象作为 DACPAC 的一部分。我们需要将权限作为部署后脚本的一部分。我将提供示例安全活动作为部署后脚本的一部分。

      1. 创建登录
      2. 创建用户
      3. 创建角色
      4. 角色、用户的权限 ...

      【讨论】:

        【解决方案3】:
        sqlpackage /a:extract  /p:IgnorePermissions=false
        

        【讨论】:

        • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
        猜你喜欢
        • 2013-10-24
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 1970-01-01
        • 2019-05-22
        • 2013-12-28
        • 2011-06-12
        • 2020-03-11
        相关资源
        最近更新 更多