Azure发布管道DACPAC部署期间登录失败

3

我正在尝试使用Azure DevOps中的发布管道将一个dacpac部署到Azure SQL服务器中的数据库。通过将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 数据库名称:xyz.a xyz.b

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

脚本中似乎成功获取了访问令牌。

1个回答

2
一些 dacpac 部署成功是因为这些 dacpac 具有在设置为 SQL 服务器的 AAD 管理员的 SG 中包含的权限。
那些权限不包含在 AAD 管理员 SG 中的 dacpac 部署失败了。解决方案是使用 sqlpackage.exe 标志删除权限对象:
/p:ExcludeObjectTypes=Users;ServerRoleMembership;ServerRoles;DatabaseRoles;RoleMembership;Users;Permissions

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接