sql-server - Azure Release Pipeline DACPAC 部署期间登录失败

标签 sql-server azure azure-devops azure-sql-server dacpac

我正在尝试使用 azure devops 中的发布管道将 dacpac 部署到 Azure SQL Server 中的数据库。通过将 Azure 对象名称添加为该数据库的 db_owner,我能够成功地将 dacpac 部署到一个数据库。 我对不同的 dacpac 重复了相同的步骤,但收到一条错误消息,指出访问失败。

2022-04-06T21:54:52.4823080Z Initializing deployment (Start)
2022-04-06T21:55:49.0595299Z Initializing deployment (Failed)
2022-04-06T21:55:49.0721494Z Time elapsed 0:00:57.89
2022-04-06T21:55:49.2784337Z ##[error]*** An error occurred during deployment plan generation. Deployment cannot continue.
2022-04-06T21:55:49.2883974Z ##[error]Login failed for user '<token-identified principal>'.

使用服务主体作为身份验证(使用服务主体的服务连接的 SPN) 数据库服务器:xyz DB数据库:xyz.a xyz.b

a 成功,但 b 在同一发布管道上失败。

看来脚本中已成功获取访问 token 。

最佳答案

一些 dacpac 部署成功,因为 dacpac 拥有 SG 中包含的权限,SG 被设置为 SQL 服务器的 AAD 管理员。

具有 AAD Admin SG 中未包含的权限的 dacpac 失败。解决方案是使用 sqlpackage.exe 标志删除权限对象:

/p:ExcludeObjectTypes=Users;ServerRoleMembership;ServerRoles;DatabaseRoles;RoleMembership;Users;Permissions

关于sql-server - Azure Release Pipeline DACPAC 部署期间登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71774892/

相关文章:

c# - 我无法在 Team Foundation Server 上进行预测

sql-server - SQL Server 2005 连接错误 : Cannot generate SSPI context

sql-server - 如何在 SQL Server 中进行增量加载

azure - 重写到在 Azure 网站中不起作用的外部域

git - 其他 git 存储库的构建管道期间出现 Azure DevOps 错误 'Git fetch failed with exit code 128'

azure - 我可以在 azure 中加密非托管磁盘吗?

azure-devops - 如何使用 REST API 更新任务组

sql-server - 如何避免MSDTC?

.net - 在 Visual Studio 中查看存储过程

azure-devops - Azure DevOps 发布管道自定义模板