Я выполняю следующую команду
$sp = az ad sp show --id $env:ARM_CLIENT_ID --query '{objectId: objectId, displayName: displayName}'
az sql server ad-admin create --resource-group data-eastus2 `
--server-name data-eastus2-sqlsvr `
--display-name $sp.name `
--object-id $sp.id
который отлично работает без предоставления каких-либо разрешений Graph API для принципала службы. Попытка имитировать эту функциональность с помощью модуля Az Powershell, выполнив следующие
Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName 'data-eastus2' -ServerName 'data-eastus2-sqlsvr' -DisplayName $sp.name -ObjectId $sp.id
дает исключение
Set-AzSqlServerActiveDirectoryAdministrator: не удается найти объект Azure Active Directory 'service_principal_name'. Убедитесь, что авторизуемый пользователь или группа зарегистрированы в каталоге Azure Active Directory текущей подписки. Чтобы получить список групп Azure Active Directory, используйте Get-AzADGroup, или чтобы получить список пользователей Azure Active Directory, используйте Get-AzADUser. В строке: 1 символ: 1 + Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName 'data ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: CloseError: (:) [Set-AzSqlServer ... ryAdministrator], ArgumentException + FullyQualifiedErrorId: Microsoft.Azure.Commands.Sql.ServerActiveDirectoryAdministrator.Cmdlet.SetAzureSqlServerActiveDirectoryAdministrator
Предоставление разрешений API Azure Active Directory Graph - Directory.Read.All и Microsoft Graph - Directory.Read.All не помогло.