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

本页面概述了如何在 AlloyDB for PostgreSQL 中管理数据库用户,以及如何为这些数据库用户启用 Identity and Access Management (IAM) 身份验证。

数据库用户管理的运作方式

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

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

  • 用户:被赋予 LOGIN 属性的角色。用户可以通过身份验证并登录 AlloyDB 数据库集群。

  • 群组:可授予一位或多位用户的角色。群组的作用是统一控制多个用户作为整体所拥有的权限。

数据库身份验证的运作方式

如需对 AlloyDB 数据库集群进行身份验证并登录,您有两种选择:

  • 内置 PostgreSQL 基于密码的身份验证:为了验证用户身份,AlloyDB 会将用户提供的凭证与存储的哈希密码进行比对。支持的方法包括 md5scram-sha-256password
  • 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 数据库或执行其他操作。

alloydbagent 用户角色

alloydbagent 角色是内部 AlloyDB 系统角色。AlloyDB 服务会管理该角色,您无法手动将其授予数据库账号。这种管理可确保数据库及其功能正常运行。

alloydbreplica 用户角色

alloydbreplica 角色是内部 AlloyDB 系统角色。AlloyDB 服务会管理该角色,您无法手动将其授予数据库账号。这种管理可确保数据库及其功能正常运行。

alloydbiamuser 群组角色

alloydbiamuser 群组中的数据库用户通过 IAM 而非内置 PostgreSQL 基于密码的身份验证来对 AlloyDB 实例进行身份验证。

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

后续步骤