SQL Server DACPAC 部署删除用户/角色/权限

时间:2021-01-18 19:40:08

标签: sql-server

我正在使用 DACPAC 部署(Azure)SQL Server 数据库。每次我部署它时都会删除我的用户、角色和权限,即使我在我正在使用的发布配置文件中明确告诉它不要。

发布配置文件定义为

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludeCompositeObjects>True</IncludeCompositeObjects>
    <TargetDatabaseName>neonbliss</TargetDatabaseName>
    <DeployScriptFileName>Neon Bliss Storefront Database.sql</DeployScriptFileName>
    <BlockOnPossibleDataLoss>True</BlockOnPossibleDataLoss>
    <DropObjectsNotInSource>True</DropObjectsNotInSource>
    <ProfileVersionNumber>1</ProfileVersionNumber>
    <DatabaseEdition>Basic</DatabaseEdition>
    <DatabaseServiceObjective>Basic</DatabaseServiceObjective>
    <DatabaseMaximumSize>2</DatabaseMaximumSize>
    <DoNotDropRoleMembership>True</DoNotDropRoleMembership>
    <DoNotDropUsers>True</DoNotDropUsers>
    <DoNotDropPermissions>True</DoNotDropPermissions>
    <DoNotDropSecurityPolicies>True</DoNotDropSecurityPolicies>
    <ExcludeUsers>True</ExcludeUsers>
    <ExcludeSecurityPolicies>True</ExcludeSecurityPolicies>
    <ExcludeDatabaseRoles>True</ExcludeDatabaseRoles>
    <IgnorePermissions>True</IgnorePermissions>
    <TreatVerificationErrorsAsWarnings>True</TreatVerificationErrorsAsWarnings>
  </PropertyGroup>
</Project>

有人看过吗?

1 个答案:

答案 0 :(得分:1)

这是一个持续存在的 DACPAC 问题,大概是 DropObjectsNotInSource 不加选择地覆盖所有其他标志。

如果您不想将安全对象专门添加到您的 SSDT 包中,那么由于发布配置文件没有按照您的需要粘贴,您需要 adjust the arguments of SQLPackage.exe 使用...

BackgroundColorSpan