借助 Identity and Access Management (IAM),您可以控制用户和群组在项目、Spanner 实例和 Spanner 数据库级对 Spanner 资源的访问权限。例如,您可以指定某个用户对您项目中特定实例的特定数据库拥有完全控制权,但不允许该用户创建、修改或删除项目中的任何实例。通过使用 IAM 控制访问权限,您可以向用户或群组授予权限,而无需单独修改每个 Spanner 实例或数据库权限。
本文档重点介绍与 Spanner 相关的 IAM 权限和授予这些权限的 IAM 角色。如需详细了解 IAM 及其功能,请参阅 Identity and Access Management 开发者指南,尤其应参阅管理 IAM 政策部分。
权限
有了权限,用户便可对 Spanner 资源执行特定操作。例如,拥有 spanner.databases.read 权限的用户可以使用 Spanner 的读取 API 从数据库读取数据,而拥有 spanner.databases.select 权限的用户可以对数据库执行 SQL select 语句。您不能直接授予用户权限,但可以为他们分配预定义角色或自定义角色,这些角色本身会具有一项或多项权限。
下表列出了与 Spanner 相关的 IAM 权限。
实例配置
以下权限适用于 Spanner 实例配置。如需了解详情,请参阅 REST 和 RPC API 的实例配置参考文档。
| 实例配置权限名称 | 说明 |
|---|---|
spanner.instanceConfigs.create |
创建自定义实例配置。 |
spanner.instanceConfigs.delete |
删除自定义实例配置。 |
spanner.instanceConfigs.get |
获取实例配置。 |
spanner.instanceConfigs.list |
列出一组实例配置。 |
spanner.instanceConfigs.update |
更新自定义实例配置。 |
实例配置操作
以下权限适用于 Spanner 实例配置操作。如需了解详情,请参阅 REST 和 RPC API 的实例参考信息。
| 实例配置操作权限名称 | 说明 |
|---|---|
spanner.instanceConfigOperations.cancel |
取消实例配置操作。 |
spanner.instanceConfigOperations.delete |
删除实例配置操作。 |
spanner.instanceConfigOperations.get |
获取实例配置操作。 |
spanner.instanceConfigOperations.list |
列出实例配置操作。 |
实例
以下权限适用于 Spanner 实例。如需了解详情,请参阅 REST 和 RPC API 的实例参考信息。
| 实例权限名称 | 说明 |
|---|---|
spanner.instances.create |
创建实例。 |
spanner.instances.delete |
删除实例。 |
spanner.instances.get |
获取特定实例的配置。 |
spanner.instances.getIamPolicy |
获取实例的 IAM 政策。 |
spanner.instances.list |
列出实例。 |
spanner.instances.setIamPolicy |
设置实例的 IAM 政策。 |
spanner.instances.update |
更新实例。 |
实例操作
以下权限适用于 Spanner 实例操作。如需了解详情,请参阅 REST 和 RPC API 的实例参考文档。
| 实例操作权限名称 | 说明 |
|---|---|
spanner.instanceOperations.cancel |
取消实例操作。 |
spanner.instanceOperations.delete |
删除实例操作。 |
spanner.instanceOperations.get |
获取特定的实例操作。 |
spanner.instanceOperations.list |
列出实例操作。 |
实例分区
以下权限适用于 Spanner 实例分区。如需了解详情,请参阅 REST 和 RPC API 的实例分区参考信息。
| 实例权限名称 | 说明 |
|---|---|
spanner.instancePartitions.create |
创建实例分区。 |
spanner.instancePartitions.delete |
删除实例分区。 |
spanner.instancePartitions.get |
获取特定实例分区的配置。 |
spanner.instancePartitions.list |
列出实例分区。 |
spanner.instancePartitions.update |
更新实例分区。 |
实例分区操作
以下权限适用于 Spanner 实例分区操作。如需了解详情,请参阅 REST 和 RPC API 的实例分区参考信息。
| 实例分区操作权限名称 | 说明 |
|---|---|
spanner.instancePartitionOperations.cancel |
取消实例分区操作。 |
spanner.instancePartitionOperations.delete |
删除实例分区操作。 |
spanner.instancePartitionOperations.get |
获取特定的实例分区操作。 |
spanner.instancePartitionOperations.list |
列出实例分区操作。 |
数据库
以下权限适用于 Spanner 数据库。如需了解详情,请参阅 REST 和 RPC API 的数据库参考信息。
| 数据库权限名称 | 说明 |
|---|---|
spanner.databases.adapt |
使 Spanner Adapter API 可以直接与 Spanner 交互。 |
spanner.databases.beginOrRollbackReadWriteTransaction |
在 Spanner 数据库上开始或回滚读写事务。 |
spanner.databases.beginPartitionedDmlTransaction |
执行实例分区数据操纵语言 (DML) 语句。如需详细了解实例分区查询,请参阅并行读取数据。 |
spanner.databases.beginReadOnlyTransaction |
在 Spanner 数据库上开始只读事务。 |
spanner.databases.create |
创建数据库。 |
spanner.databases.createBackup |
从数据库创建备份。此外,还需要 spanner.backups.create 以创建备份资源。 |
spanner.databases.drop |
删除数据库。 |
spanner.databases.get |
获取数据库的元数据。 |
spanner.databases.getDdl |
获取数据库的架构。 |
spanner.databases.getIamPolicy |
获取数据库的 IAM 政策。 |
spanner.databases.list |
列出数据库。 |
spanner.databases.read |
使用读取 API 从数据库读取数据。 |
spanner.databases.select |
对数据库执行 SQL select 语句。 |
spanner.databases.setIamPolicy |
设置数据库的 IAM 政策。 |
spanner.databases.update |
更新数据库的元数据。 |
spanner.databases.updateDdl |
更新数据库架构。 |