用途:为 Azure Database for PostgreSQL Flexible Server 配置 Microsoft Entra ID 无密码认证,管理用户访问,并从基于密码的认证迁移到 Entra ID。主要面向已存在的 PostgreSQL 服务器。
主要能力:在服务器上启用 Entra ID 认证;创建映射到 Azure 标识的 PostgreSQL 角色;授予数据库权限;使用访问令牌而非密码连接。适用于开发者以 Azure 标识访问、Azure 托管应用(Container Apps、App Service、Functions)的无密码访问、基于 Azure AD 组的组级访问控制,以及密码到 Entra ID 的迁移。
用法:优先使用 Azure MCP 工具 azure__postgres,支持 postgres_server_list、postgres_database_list、postgres_database_query、postgres_server_param_get、postgres_server_param_set。未启用 MCP 时可用 CLI 回退,例如 az postgres flexible-server list --output table、az postgres flexible-server db list --server-name SERVER -g RG、az postgres flexible-server show --name SERVER -g RG、az postgres flexible-server create --name SERVER -g RG --location REGION --admin-user ADMIN --version 16。提供 Azure 门户链接便于访问。
服务层级与版本:Burstable 1-20 vCore(0.5-4 GB/vCore,适合开发测试与低流量)、General Purpose 2-64 vCore(4 GB/vCore,多数生产负载)、Memory Optimized 2-64 vCore(8 GB/vCore,高内存负载)。引擎版本支持 PostgreSQL 11 至 16(推荐 16)。
限制与常见问题:角色不存在需运行 pgaadauth_create_principal;密码认证失败多因令牌过期(5-60 分钟有效),需重新获取令牌 az account get-access-token --resource-type oss-rdbms;权限不足需执行 GRANT;连接超时需添加防火墙规则 az postgres flexible-server firewall-rule create;来宾用户登录需使用带 #EXT# 标签的完整 UPN。生产负载建议始终使用 Entra ID 无密码认证。其他事实暂未提供。