关于 AlloyDB for PostgreSQL 中的数据库用户管理

本页面简要介绍了如何在 AlloyDB for PostgreSQL 中管理数据库用户,以及如何为这些数据库用户启用 Identity and Access Management (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 而非标准 PostgreSQL 基于密码的身份验证,来对 AlloyDB 实例进行身份验证。

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

后续步骤