sql-server - SQL Server DACPAC 部署删除用户/角色/权限
问题描述
我正在使用 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>
有人见过这个吗?
解决方案
这是一个持续的 DACPAC 问题,大概是 DropObjectsNotInSource 不加选择地覆盖所有其他标志。
如果您不想专门将安全对象添加到您的 SSDT 包中,那么由于发布配置文件不像您需要的那样坚持,您需要调整 SQLPackage.exe 的参数...
/p:ExcludeObjectTypes=Users;Logins;RoleMembership;Permissions
推荐阅读
- c# - 提交后删除 URL ID?(ASP.NET/实体框架)
- spoofing - Ettercap:是否可以使用 DNS 欺骗重定向所有 HTTP 网站?
- tuples - 帕斯卡中有类似 Rust 的元组吗?
- mongodb - MongoDB 4.4 - 集合数据未分布在分片中
- python - 使用多个 loc()
- ios - 如何在复杂流程中使用导航控制器
- javascript - 使用 jQuery 向选择添加选项会混淆文本索引
- mongodb - 将对象的 MongoDb 中的字段更新为对象数组 - 命令行
- java - 即使在项目中检测到错误,eclipse有没有办法运行Java程序?
- c# - ASP.NET 我无法让模型将数据带回控制器。它始终为 0