你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Database for PostgreSQL 灵活服务器中配置 Azure 存储扩展

适用于: Azure Database for PostgreSQL - 灵活服务器

必须按照以下步骤才能使用 Azure 存储扩展:

  1. 标识 Azure 存储帐户
  2. 选择授权类型
  3. 加载扩展库
  4. 允许列表扩展
  5. 创建扩展
  6. 使用扩展导入和导出数据

标识 Azure 存储帐户

确定希望扩展用户与之交互的 Azure 存储帐户,以便将数据导入或导出到其中。

选择授权类型

确定要用于针对每个 Azure 存储帐户的 Blob 服务发出的请求的授权类型。 azure_storage 扩展支持使用共享密钥进行授权,并使用 Microsoft Entra ID 进行授权。

在这两种类型的授权中,Microsoft Entra ID 提供优于共享密钥的安全性和易用性,并且是建议的一种Microsoft。

若要满足每个情况下所需的先决条件,请按照相应部分中的说明作:

将授权与 Microsoft Entra ID 配合使用

  1. 在 Azure Database for PostgreSQL 灵活服务器上启用 系统分配的托管标识
  2. 在启用系统分配的托管标识后,重启 Azure Database for PostgreSQL 灵活服务器的实例
  3. 将基于角色的访问控制(RBAC)权限分配给 Azure Database for PostgreSQL 灵活服务器的实例的系统分配托管标识,以便访问 Blob 数据。

启用系统分配的托管标识

启用系统分配的托管标识的屏幕截图。

将授权与共享密钥配合使用

  1. 确认存储帐户允许访问其密钥
  2. 提取存储帐户的两个访问密钥之一

确认存储帐户允许访问其密钥

Azure 存储帐户必须启用 “允许存储帐户密钥访问” (也就是说,它不能将其 AllowSharedKeyAccess 属性设置为 false)。

确认已启用“允许存储帐户密钥访问”的屏幕截图。

提取存储帐户的两个访问密钥之一

若要将其传递给 azure_storage.account_add 函数,请提取 Azure 存储帐户 的两个访问密钥之一

复制存储帐户访问密钥的屏幕截图。

加载扩展库

配置服务器,以便在启动时加载 azure_storage 二进制模块。

在服务器参数中的shared_preload_libraries中选择azure_storage的屏幕截图。 由于服务器是静态的 shared_preload_libraries ,因此必须重新启动服务器才能进行更改才能生效: 更改shared_preload_libraries时弹出的对话框的屏幕截图,以便保存并重启。

允许列表扩展

必须允许列出扩展,以便用户可以运行 CREATE EXTENSION、DROP EXTENSION、ALTER EXTENSION、COMMENT ON EXTENSION。

在服务器参数中选择 azure.extensions 中的azure_storage的屏幕截图。

创建扩展

在 Azure Database for PostgreSQL 灵活服务器中使用偏好的客户端(例如 PostgreSQL for Visual Studio Code 扩展、psql、pgAdmin 等),连接到要使用 Azure 存储扩展的数据库。

若要创建可以使用扩展与 Azure 存储帐户实例交互的所有 SQL 对象(表、类型、函数、视图等), azure_storage 请执行以下语句:

CREATE EXTENSION azure_storage;

使用扩展导入和导出数据

现在,你已准备好添加要与之交互的存储帐户(使用 azure_storage.account_add 函数)。 然后,可以使用函数或COPY FROM语句将存储在 Azure 存储帐户azure_storage.blob_get中的文件中的数据导入,也可以使用函数或COPY TO语句将数据从 PostgreSQL 导出到 Azure 存储帐户azure_storage.blob_put中的文件中。

查看快速入门示例列表:

如果需要查看扩展提供的所有函数以及每个函数的所有详细信息,请查看完整参考:

此外,如果需要进行一些故障排除,请查看扩展可以生成的 错误列表 ,以及可以引发错误的上下文。

重要

对于必须为其提供 Azure 存储帐户访问密钥的身份验证类型,请注意,Azure 存储访问密钥类似于存储帐户的根密码。 请始终小心保护它们。 使用 Azure 密钥保管库安全地管理和轮换密钥。 azure_storage扩展将这些密钥存储在可由角色成员读取的azure_storage.accounts表中pg_read_all_data