当我通过powershell在本地pc上运行下面的程序时,它成功地完成了。
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName $resourceGroupName -ServerName $serverName -DisplayName 'AAD_GAOUAT_SQLADMIN' -ObjectId 'd9c6b5a7-079e-44b4-8911-bd0451bfb59a'

现在,当我在DevOps中运行相同的命令(通过)时,我得到以下错误

知道为什么Azure DevOps会失败吗?
发布于 2021-03-25 07:10:22
当您在devops azure powershell任务中运行该命令时,它将允许您使用到auth的服务连接,我认为您没有使用位于正确租户中的正确的服务主体(即位于的sql服务器的订阅)。
请按照下面的步骤解决问题。
1.在开发过程中,导航到Project Settings -> Service connections -> New service connection -> Azure Resource Manager -> Service principal (manual)。



如果您没有AD应用程序,也可以选择上面的Service principal (automatic),然后使用正确的信息.e.g订阅来修复值。如果选择Service principal (manual),请确保服务主体在订阅中具有RBAC角色,以设置server管理,例如Owner、Contributor。
2.创建服务连接后,单击它并选择Manage Service Principal。

它将为相关的AD应用程序-> API permissions -> Add a permission ->添加Azure Active Directory Graph的Directory.Read.All应用程序权限打开一个页面,如下所示(而不是Microsoft Graph),最后,不要忘记单击Grant admin consent for xxx按钮。
这一步是因为Set-AzSqlServerActiveDirectoryAdministrator将调用AADGraph以检查输入的对象,因此需要授予权限。



3.然后在蔚蓝powershell任务中,选择我们创建的服务连接。

运行它,它工作的很好。

https://stackoverflow.com/questions/66785284
复制相似问题