AlloyDB for PostgreSQL 中的数据库用户管理简介

本页面简要介绍了如何在 AlloyDB for PostgreSQL 中管理数据库用户,以及如何为这些数据库用户启用身份和访问管理 (IAM) 身份验证。

数据库用户管理的工作原理

AlloyDB 与 PostgreSQL 共享角色、用户和群组等概念。如需简要了解,请参阅以下说明:

  • 角色:顶级指定,用于描述集群中的数据库用户和数据库用户群组。角色用于提供和限制对数据库对象(例如表和函数)的访问权限。

  • 用户:具有 LOGIN 属性的角色。用户可以进行身份验证并登录 AlloyDB 数据库集群。

  • 群组:授予一个或多个用户的角色。群组的用途是控制许多用户作为一个整体所拥有的特权。

数据库身份验证的工作原理

如需对 AlloyDB 数据库集群进行身份验证和登录,您有两个选项:

  • 基于密码的标准 PostgreSQL 身份验证:通过将提供的凭据与存储的经过哈希处理的密码进行比较来验证用户身份。支持的方法包括 md5、scram-sha-256 和密码。
  • IAM 身份验证:允许数据库用户使用 IAM 进行身份验证,以增强安全性并在其他Google Cloud 服务中实现集中式访问控制。

预定义角色

PostgreSQL 提供了具有各种权限的预定义角色。除了这些预定义角色之外,AlloyDB 还提供了更多预定义的用户和群组角色。

下表列出了 AlloyDB 提供的角色和角色特权。

角色名称 权限
alloydbsuperuser CREATEROLECREATEDBLOGIN
postgres CREATEROLECREATEDBLOGIN
alloydbimportexport CREATEROLECREATEDB
alloydbagent CREATEROLECREATEDB
alloydbreplica REPLICATION
alloydbiamuser 默认情况下,此角色没有任何权限。

以下子部分介绍了其中一些角色的用途。

alloydbsuperuser 群组角色

借助 alloydbsuperuser,您可以设置数据库系统并执行其他超级用户任务。此角色具有以下权限:

  • 创建需要超级用户权限的扩展程序
  • 创建事件触发器
  • 创建复制用户
  • 创建复制发布和订阅

作为一项托管式服务,AlloyDB 不允许您向用户授予 PostgreSQL superuser 角色。不过,您可以通过向任何数据库用户授予 alloydbsuperuser 角色,为其授予 AlloyDB 超级用户权限。

postgres 用户角色

postgres 用户角色属于 alloydbsuperuser。创建 AlloyDB 集群时,您需要为 postgres 分配密码。然后,您可以使用 postgres 登录系统,执行创建数据库或其他角色等任务。

alloydbimportexport 用户角色

当您创建 AlloyDB 集群时,AlloyDB 会创建 alloydbimportexport,并为其授予导入和导出操作所需的一组最低权限。

您可以选择自行创建用户来执行这些操作。如果您未创建自定义 alloydbimportexport 用户,系统将使用默认的 alloydbimportexport 用户执行导入和导出操作。

alloydbimportexport 是系统用户。这意味着,您无法直接使用 alloydbimportexport 用户在 PostgreSQL 数据库中登录或执行其他操作。

alloydbiamuser 群组角色

alloydbiamuser 组中的数据库用户通过使用 IAM 对 AlloyDB 实例进行身份验证,而不是使用标准 PostgreSQL 基于密码的身份验证

AlloyDB 不允许您使用 GRANT PostgreSQL 命令或类似方法向用户授予 alloydbiamuser。不过,您可以使用 AlloyDB 管理工具来创建和管理基于 IAM 的数据库用户。如需了解详情,请参阅管理 IAM 身份验证

后续步骤