我正在运行以下命令
$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 目录中注册。要获取 Azure Active Directory 组的列表,请使用 Get-AzADGroup,或者要获取 Azure Active Directory 用户的列表,请使用 Get-AzADUser。在 line:1 char:1 + Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName 'data ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Set-AzSqlServer ...ryAdministrator],ArgumentException + FullyQualifiedErrorId:Microsoft.Azure.Commands.Sql.ServerActiveDirectoryAdministrator.Cmdlet.SetAzureSqlServerActiveDirectoryAdministrator
提供 Azure Active Directory Graph - Directory.Read.All 和 Microsoft Graph - Directory.Read.All API 权限没有帮助。