IAM 概览

借助 Identity and Access Management (IAM),您可以控制用户对 Spanner Omni 资源的访问权限。例如,用户可以对特定数据库拥有完全控制权,但无法在部署中创建或修改其他数据库。借助 IAM,您可以向用户授予权限,而无需单独修改每个 Spanner Omni 数据库权限。

本文档重点介绍与 Spanner Omni 相关的 IAM 权限和授予这些权限的 IAM 角色。如需详细了解 IAM 及其功能,请参阅 Identity and Access Management 开发者指南。

权限

有了权限,用户便可对 Spanner Omni 资源执行特定操作。例如,拥有 spanner.databases.read 权限的用户可以使用 Spanner Omni 的读取 API 从数据库读取数据,而拥有 spanner.databases.export 权限的用户可以导出 Spanner Omni 数据库。您并非直接向用户授予权限,而是向其授予预定义角色(角色本身会具有一项或多项权限)。

下表列出了与 Spanner Omni 相关的 IAM 权限。部分权限与 Spanner 共享,部分权限仅供 Spanner Omni 使用。

数据库

以下权限适用于 Spanner Omni 数据库。

数据库权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.databases.create 创建数据库。
spanner.databases.createBackup 从数据库创建备份。此外,还需要 spanner.backups.create 以创建备份资源。
spanner.databases.get 获取数据库的元数据。
spanner.databases.getIamPolicy 获取数据库的 IAM 政策。
spanner.databases.list 列出数据库。
spanner.databases.read 使用读取 API 从数据库读取数据。
spanner.databases.setIamPolicy 设置数据库的 IAM 政策。
spanner.databases.update 更新数据库的元数据。
spanner.databases.updateDdl 更新数据库架构。
spanner.databases.write 写入数据库。
spanner.databases.compact 压缩数据库中的表
spanner.databases.export 导出 Spanner Omni 数据库
spanner.databases.import 导入 Spanner Omni 数据库
spanner.databases.addSplitPoints 向数据库添加拆分点。

数据库操作

以下权限适用于 Spanner Omni 数据库操作。

数据库操作权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.databaseOperations.cancel 取消数据库操作。
spanner.databaseOperations.delete 删除数据库操作。
spanner.databaseOperations.get 获取特定的数据库操作。
spanner.databaseOperations.list 列出数据库并恢复数据库操作。

备份

以下权限适用于 Spanner Omni 备份。

备份权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.backups.copy 复制备份。
spanner.backups.create 创建备份。 此外,还需要对源数据库使用 spanner.databases.createBackup
spanner.backups.createDatabaseFromBackup 从备份创建数据库。
spanner.backups.delete 删除备份。
spanner.backups.get 获取备份。
spanner.backups.getIamPolicy 获取备份的 IAM 政策。
spanner.backups.list 列出备份。
spanner.backups.restoreDatabase 使用备份恢复数据库。此外,还需要 spanner.databases.create 来创建恢复的数据库。
spanner.backups.setIamPolicy 设置备份的 IAM 政策。
spanner.backups.update 更新备份。
spanner.backups.import 从外部存储空间导入备份

备份操作

以下权限适用于 Spanner Omni 备份操作。

备份操作权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.backupOperations.cancel 取消备份操作。
spanner.backupOperations.get 获取特定的备份操作。
spanner.backupOperations.list 列出备份操作。

备份时间表

以下权限适用于 Spanner Omni 备份时间表。

备份时间表权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.backupSchedules.create 创建备份时间表。此外,还需要对源数据库使用 spanner.databases.createBackup
spanner.backupSchedules.delete 删除备份时间表。
spanner.backupSchedules.get 获取备份时间表。
spanner.backupSchedules.list 列出备份时间表。
spanner.backupSchedules.update 更新备份时间表。
spanner.backupSchedules.getIamPolicy 获取备份时间表的 IAM 政策。
spanner.backupSchedules.setIamPolicy 设置备份计划的 IAM 政策。

备份描述符

以下权限适用于 Spanner Omni 备份描述符。

备份描述符权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.backupDescriptors.import 从备份描述符导入备份
spanner.backupDescriptors.list 列出备份描述符。

会话

以下权限适用于 Spanner Omni 会话。

会话权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.sessions.create 创建会话。
spanner.sessions.delete 删除会话。
spanner.sessions.get 获取会话。
spanner.sessions.list 列出会话。

地理位置和可用区

以下权限适用于 Spanner Omni 位置和可用区。

权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.locations.create 创建 Spanner Omni 位置
spanner.locations.delete 删除 Spanner Omni 位置
spanner.locations.get 获取 Spanner Omni 位置
spanner.locations.list 列出 Spanner Omni 位置
spanner.locationDistances.create 创建 Spanner Omni 位置距离
spanner.locationDistances.delete 删除 Spanner Omni 位置距离
spanner.locationDistances.get 获取 Spanner Omni 位置距离
spanner.locationDistances.list 列出 Spanner Omni 位置距离
spanner.locationDistances.update 更新 Spanner Omni 位置距离
spanner.zones.create 创建 Spanner Omni 可用区
spanner.zones.delete 删除 Spanner Omni 可用区
spanner.zones.get 获取 Spanner Omni 可用区
spanner.zones.list 列出 Spanner Omni 可用区

服务器

以下权限适用于 Spanner Omni 服务器。

服务器权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.servers.create 创建 Spanner Omni 服务器
spanner.servers.delete 删除 Spanner Omni 服务器
spanner.servers.get 获取 Spanner Omni 服务器
spanner.servers.list 列出 Spanner Omni 服务器

用户和角色

以下权限适用于 Spanner Omni 用户和角色。

权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.users.create 创建 Spanner Omni 用户
spanner.users.delete 删除 Spanner Omni 用户
spanner.users.get 获取 Spanner Omni 用户
spanner.users.list 列出 Spanner Omni 用户
spanner.users.update 更新 Spanner Omni 用户
spanner.roles.get 获取 Spanner Omni 角色
spanner.roles.list 列出 Spanner Omni 角色

外部存储

以下权限适用于 Spanner Omni 外部存储空间。

外部存储权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.externalStorages.create 创建外部存储空间
spanner.externalStorages.delete 删除外部存储空间
spanner.externalStorages.get 获取外部存储空间
spanner.externalStorages.getIamPolicy 获取外部存储空间的 IAM 政策
spanner.externalStorages.list 列出外部存储空间
spanner.externalStorages.setIamPolicy 设置外部存储空间的 IAM 政策

文件系统和描述符

以下权限适用于 Spanner Omni 文件系统。

权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.filesystem.cat 打印 Spanner Omni 文件系统中的文件
spanner.filesystem.ls 列出 Spanner Omni 文件系统中的文件
spanner.descriptors.print 输出 Spanner Omni 文件系统中的描述符

其他管理员权限

以下权限适用于其他 Spanner Omni 管理员任务。

权限名称 说明 Spanner 和 Spanner Omni 仅限 Spanner Omni
spanner.chubby.list 列出 Chubby 单元
spanner.chubby.print 输出 Chubby 单元格内容
spanner.deployment.get 获取 Spanner Omni 部署
spanner.diagnostics.create 从 Spanner Omni 服务器收集制品以进行调试
spanner.internal-tables.sql 针对内部表运行 SQL 查询
spanner.logs.copy 从 Spanner Omni 服务器复制日志
spanner.tablet.move 将片从一个 Spanner Omni 服务器移动到另一个服务器
spanner.workflows.delete 删除数据库中的工作流
spanner.groups.compact 压缩分组中的平板电脑
spanner.directories.compact 压缩目录中的平板电脑

预定义角色

预定义角色是一个或多个权限的集合。Spanner Omni 支持以下预定义角色:

角色 说明
roles/spanner.admin 对所有 Spanner Omni 资源拥有完整访问权限。包含所有权限。
roles/spanner.backupAdmin 对 Spanner Omni 备份和备份操作拥有完整访问权限。
roles/spanner.backupWriter 可以创建备份,但无法更新或删除备份。
roles/spanner.databaseAdmin 对项目中的所有 Spanner Omni 数据库拥有完整访问权限。
roles/spanner.databaseReader 可以从 Spanner Omni 数据库读取数据并查看架构。
roles/spanner.databaseUser 可以读取和写入 Spanner Omni 数据库。
roles/spanner.editor Spanner Omni 的编辑者角色。
roles/spanner.restoreAdmin 可以从备份中恢复数据库。
roles/spanner.viewer 可以查看所有 Spanner Omni 资源,但无法修改这些资源。 包括只读权限。

Spanner Omni 还有一些值得注意的限制:

  • 没有自定义角色。
  • 没有精细的访问权限控制。
  • 无 IAM 条件。

后续步骤