You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法为私有访问(VNet集成)的Azure PostgreSQL灵活服务器添加Azure AD管理员

问题描述

我在Azure订阅中创建了两个Azure Database for PostgreSQL灵活服务器实例:server01-psql和server02-psql,二者共同属性如下:

  • 同属资源组app-rg
  • 运行PostgreSQL 14版本
  • 采用PostgreSQL和Azure Active Directory authentication认证方式

二者仅网络连接方式不同:

  • server01-psql:网络连接为私有访问(VNet集成),关联同一订阅下的VNet和子网
  • server02-psql:网络连接为公共访问(允许的IP地址)

我需要将Azure AD组all-app-dbadm添加为两台服务器的Azure Active Directory管理员,我的账号是该订阅的Owner,同时也是关联Azure AD的Global Administrator。已成功为server02-psql添加目标组,但为server01-psql添加时,通过Azure门户和以下az-cli命令均失败:

az postgres flexible-server ad-admin create -g app-rg -s server01-psql -u mysupergroup -i mysupergroupguid -t Group

报错信息:

Deployment to resource group 'app-rg' failed. Additional details from the underlying API that might be helpful: At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details. The resource write operation failed to complete successfully, because it reached terminal provisioning state 'Failed'. (Code: ResourceDeploymentFailure, Target: /subscriptions/mysupersubscriptionid/resourceGroups/app-rg/providers/Microsoft.Resources/deployments/addAdmins-0-XXXXXX)

请问需修改哪些资源、订阅设置或操作流程,才能成功为server01-psql添加Azure AD管理员?

解决方案

针对VNet集成的PostgreSQL灵活服务器添加AD管理员失败的问题,可按以下步骤排查和修复:

1. 检查VNet的DNS配置

如果你的VNet使用自定义DNS服务器,必须确保其能够解析Azure AD相关域名(如login.microsoftonline.com、graph.microsoft.com)。私有访问的服务器需要与Azure AD服务通信完成管理员配置,若DNS解析失败,会直接导致部署失败。

  • 若使用自定义DNS,需添加Azure AD的DNS记录配置,或配置DNS转发器指向Azure DNS服务器;
  • 若使用默认Azure DNS,可跳过此步骤,但需确认VNet未被配置为隔离DNS环境。

2. 验证子网的网络安全组(NSG)和路由表规则

确保子网关联的NSG未阻止出站到Azure AD服务的流量:

  • 添加出站允许规则,允许TCP 443端口访问Azure AD服务的IP范围(可通过Azure服务标签AzureActiveDirectory简化配置);
  • 检查路由表,确保没有将Azure AD的出站流量导向无法访问的目标(如无互联网访问的环境需配置Azure防火墙或允许出站到Azure AD端点)。

3. 获取详细部署日志定位具体错误

执行以下az-cli命令获取失败部署的详细操作日志,明确是网络连通性、权限还是其他问题:

az deployment group operation list -g app-rg -n addAdmins-0-XXXXXX --query "[].properties.statusMessage" -o table

日志会给出更具体的失败原因(如“无法连接到Azure AD”“权限不足”等),便于针对性修复。

4. 确认Azure AD组的属性正确性

虽然已在server02-psql成功配置,仍需再次确认:

  • 目标组是安全组而非通讯组;
  • 组的对象ID(mysupergroupguid)完全正确;
  • 组未被设置为隐藏或有Azure AD权限限制。

5. 临时启用公共访问重试(可选)

若上述步骤无法快速排查,可临时将server01-psql的网络连接切换为公共访问(添加当前客户端IP到允许列表),完成AD管理员配置后再切回私有访问。此方法可快速验证是否为网络隔离导致的问题。

内容的提问来源于stack exchange,提问作者rfso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:11:33