Azure DevOps Azure SQL DacpacTask SQL72018 无法导入权限
Azure DevOps Azure SQL DacpacTask SQL72018 Permission Could Not Be Imported
我们在 Azure DevOps 中有一个发布管道,它通过 Azure SQL Dacpac 任务将数据库项目部署到我们的 Azure SQL 数据库。一切正常,但昨天管道突然开始出现以下错误:
##[error]*** An error occurred during deployment plan generation. Deployment cannot continue.
##[error]Error SQL72018: Permission could not be imported but one or more of these objects exist in your source.
据我所知,数据库端或管道中没有任何变化。我们还排除了它可能是特定 dacpac 文件的问题,因为以前成功的版本现在失败并出现相同的错误。
我广泛搜索了 SQL72018 错误,但没有真正找到任何导致错误的答案,所以我想知道是否有一些 Azure DevOps 任务更新或我们可以做的事情不见了?
不确定是什么导致它像那样突然爆发。
如果我们将 p:/ignorePermissions=true
参数添加到任务中,它确实有效,但在此之前我们从未需要它。
更新:
想更新这个,因为我能够通过将 /Diagnostics:True
参数添加到管道任务来收集更多信息,以便从 SQLPackage 中打印出诊断信息。
当我添加它时,我也看到了这个错误:
Microsoft.Data.Tools.Diagnostics.Tracer 错误:1:2022-04-05T08:38:37:对数据库进行逆向工程时检测到错误。严重性:'Warning' 前缀:'' 错误代码:'0' Message:The 权限 'VDP ' 未被识别且未导入。如果此问题仍然存在,请联系客户支持。
所以看起来问题的原因似乎是某些“VDP”权限,但我们不知道该权限的用途或来源,因为它不在数据库项目中。
您似乎在目标数据库中拥有 spurious/orphan 权限 - 如本 post How could our database be causing SqlPackage to fail? (SQL72018).
中所述
我们终于弄清楚了。事实证明,在管道开始失败的前一天,一个新的权限被添加到数据库中。导致问题的数据库权限是 VIEW DATABASE PERFORMANCE STATE
。那是 SQLPackage.exe 抱怨的 VDP
权限。
不确定为什么该特定权限会导致错误,因为我们在数据库项目之外管理我们的所有数据库权限,因此不确定为什么其他权限不会在此之前导致问题。
由于我们在数据库项目之外管理权限,因此解决方案是将 p:/ignorePermissions=true
SQLPackage 参数永久添加到管道中。在我们提交工单后,Microsoft 代表确认这是合适的解决方案。
我们在 Azure DevOps 中有一个发布管道,它通过 Azure SQL Dacpac 任务将数据库项目部署到我们的 Azure SQL 数据库。一切正常,但昨天管道突然开始出现以下错误:
##[error]*** An error occurred during deployment plan generation. Deployment cannot continue.
##[error]Error SQL72018: Permission could not be imported but one or more of these objects exist in your source.
据我所知,数据库端或管道中没有任何变化。我们还排除了它可能是特定 dacpac 文件的问题,因为以前成功的版本现在失败并出现相同的错误。
我广泛搜索了 SQL72018 错误,但没有真正找到任何导致错误的答案,所以我想知道是否有一些 Azure DevOps 任务更新或我们可以做的事情不见了?
不确定是什么导致它像那样突然爆发。
如果我们将 p:/ignorePermissions=true
参数添加到任务中,它确实有效,但在此之前我们从未需要它。
更新:
想更新这个,因为我能够通过将 /Diagnostics:True
参数添加到管道任务来收集更多信息,以便从 SQLPackage 中打印出诊断信息。
当我添加它时,我也看到了这个错误:
Microsoft.Data.Tools.Diagnostics.Tracer 错误:1:2022-04-05T08:38:37:对数据库进行逆向工程时检测到错误。严重性:'Warning' 前缀:'' 错误代码:'0' Message:The 权限 'VDP ' 未被识别且未导入。如果此问题仍然存在,请联系客户支持。
所以看起来问题的原因似乎是某些“VDP”权限,但我们不知道该权限的用途或来源,因为它不在数据库项目中。
您似乎在目标数据库中拥有 spurious/orphan 权限 - 如本 post How could our database be causing SqlPackage to fail? (SQL72018).
中所述我们终于弄清楚了。事实证明,在管道开始失败的前一天,一个新的权限被添加到数据库中。导致问题的数据库权限是 VIEW DATABASE PERFORMANCE STATE
。那是 SQLPackage.exe 抱怨的 VDP
权限。
不确定为什么该特定权限会导致错误,因为我们在数据库项目之外管理我们的所有数据库权限,因此不确定为什么其他权限不会在此之前导致问题。
由于我们在数据库项目之外管理权限,因此解决方案是将 p:/ignorePermissions=true
SQLPackage 参数永久添加到管道中。在我们提交工单后,Microsoft 代表确认这是合适的解决方案。