🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install microsoft/github-copilot-for-azure/azure-postgres

💡 提示:需要 Node.js 和 NPM

Azure Database for PostgreSQL

为现有的 Azure Database for PostgreSQL 灵活服务器配置 Microsoft Entra ID 无密码身份验证。此技能专注于设置 Entra ID 身份验证、管理用户访问以及从基于密码的身份验证迁移。

主要用例:

  • 将现有的 PostgreSQL 数据库从密码身份验证迁移到 Entra ID 身份验证
  • 使用 Azure 身份为开发者设置访问权限
  • 为 Azure 托管应用程序配置托管标识访问
  • 管理基于组的访问控制和权限

MCP 工具(首选)

当 Azure MCP 启用时,使用这些工具进行 PostgreSQL 操作:

  • azure__postgres 配合命令 postgres_server_list – 列出 PostgreSQL 服务器
  • azure__postgres 配合命令 postgres_database_list – 列出服务器上的数据库
  • azure__postgres 配合命令 postgres_database_query – 执行 SQL 查询
  • azure__postgres 配合命令 postgres_server_param_get – 获取服务器参数
  • azure__postgres 配合命令 postgres_server_param_set – 设置服务器参数

CLI 命令(备用)

az postgres flexible-server list --output table
az postgres flexible-server db list --server-name 服务器名称 -g 资源组
az postgres flexible-server show --name 服务器名称 -g 资源组
az postgres flexible-server create --name 服务器名称 -g 资源组 --location 区域 --admin-user 管理员用户名 --version 16

快速参考

属性
CLI 前缀 az postgres flexible-server
MCP 工具 azure__postgres
最适合用于 关系型数据、PostgreSQL 兼容性、PostGIS
引擎版本 PostgreSQL 11, 12, 13, 14, 15, 16(推荐)

使用现有的 PostgreSQL 服务器

此技能主要关注为现有的 PostgreSQL 服务器配置身份验证。如果您需要参考或创建服务器,请使用 MCP 工具或 CLI 命令,并提供 Azure 门户链接以便于访问。

门户链接格式:

https://portal.azure.com/#@{租户域}/resource/subscriptions/{订阅ID}/resourceGroups/{资源组}/providers/Microsoft.DBforPostgreSQL/flexibleServers/{服务器名称}/overview

示例门户链接:

在 Azure 门户中查看:
https://portal.azure.com/#resource/subscriptions/abc123.../resourceGroups/myrg/providers/Microsoft.DBforPostgreSQL/flexibleServers/myserver/overview

Microsoft Entra ID 身份验证(关键)

⚠️ 对于生产工作负载,始终使用 Entra ID 的无密码身份验证。

完整设置指南

→ Microsoft Entra ID 身份验证设置指南

此指南涵盖:

  • 在 PostgreSQL 服务器上启用 Entra ID 身份验证
  • 创建映射到 Azure 身份的 PostgreSQL 角色
  • 授予数据库权限
  • 使用访问令牌而非密码进行连接

快速设置模式

根据您的场景使用以下模式:

场景 指南链接 何时使用
开发者访问 模式 1 使用 Azure 身份授予开发者访问权限
应用身份验证 模式 2 为 Azure 托管应用(容器应用、应用服务、函数)提供无密码访问
团队访问 模式 3 通过 Azure AD 组管理权限
连接问题 故障排除 诊断身份验证和连接失败
迁移 模式 5 从密码身份验证过渡到 Entra ID 身份验证

服务层级

层级 vCores 内存 用例
可突发 1-20 0.5-4 GB/vCore 开发/测试、低流量
通用 2-64 4 GB/vCore 大多数生产工作负载
内存优化 2-64 8 GB/vCore 高内存工作负载

对于开发/测试,从可突发层级开始,根据需要扩展。

常见问题

问题 原因 解决方案
role does not exist 数据库中未创建角色 运行 pgaadauth_create_principal参见指南
password authentication failed 令牌已过期(有效期为 5-60 分钟) 获取新令牌:az account get-access-token --resource-type oss-rdbms
permission denied 角色缺少权限 运行 GRANT 语句 – 参见模板
连接超时 防火墙阻止访问 添加防火墙规则:az postgres flexible-server firewall-rule create
访客用户登录失败 UPN 格式错误 使用 Azure AD 中包含 #EXT# 标记的完整 UPN

SDK 快速参考

参考

📄 原始文档

完整文档(英文):

https://skills.sh/microsoft/github-copilot-for-azure/azure-postgres

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。