🚀 快速安装
复制以下命令并运行,立即安装此 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 的无密码身份验证。
完整设置指南
此指南涵盖:
- 在 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 快速参考
- PostgreSQL 客户端:TypeScript
- Azure 身份:Python | TypeScript
- PostgreSQL 管理:.NET
参考
- Microsoft Entra ID 身份验证设置 – 完整的无密码身份验证指南
- SQL 函数 – Entra ID 角色管理函数
- 权限模板 – 常见权限模式
- 故障排除 – 连接和身份验证问题
📄 原始文档
完整文档(英文):
https://skills.sh/microsoft/github-copilot-for-azure/azure-postgres
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)