本页面介绍了当您属于 精细的访问权限控制用户
如需了解精细的访问权限控制,请参阅精细访问权限控制简介。
作为精细的访问权限控制用户,您必须选择用于执行 SQL 的数据库角色 语句和查询,以及对数据库执行行操作。您的角色 除非您更改角色,否则您的选择会在整个会话中保持不变。
提交查询、DML 或行操作时,Spanner 使用以下规则检查授权:
- Google Cloud 控制台
Spanner 首先检查您是否具有数据库级 IAM 权限。如果是, Google Cloud 控制台不能 系统会显示数据库角色选择器,您的会话将继续 数据库级权限。
如果您只有精细的访问权限控制权限,而没有 IAM 数据库级权限,那么您必须已被授予
spanner_sys_reader
系统角色或某个成员角色。选择角色 (位于数据库概览页面上),以便您的 Google Cloud 控制台 以所需的权限。
- Google Cloud SDK
如果您在提交查询、DML 或行时指定了数据库角色 操作、Spanner 检查 精细的访问权限控制权限如果检查失败,Spanner 不会 检查数据库级 IAM 权限, 失败。
如果您未指定数据库角色,Spanner 会检查 数据库级 IAM 权限,如果检查成功 您的会话将使用数据库级权限继续运行。
在访问 Spanner 数据库:
控制台
选择一个数据库,然后在数据库概览页面上,点击 旁边的更改数据库角色(铅笔)图标 当前角色字段。
默认情况下,当有精细访问权限控制的用户登录时,此字段 值
public
。如需了解public
系统角色,请参阅 精细的访问权限控制系统角色。在更改数据库角色对话框中,从列表中选择其他角色 多个可用角色
点击更新。
当前角色字段会显示新角色。
gcloud
将
--database-role
选项添加到gcloud spanner databases execute-sql
命令,如下所示:gcloud spanner databases execute-sql DATABASE_NAME \ --instance=INSTANCE_NAME \ --sql="SELECT * from TABLE_NAME;" \ --database-role=ROLE_NAME
客户端库
C++
C#
Go
Java
Node.js
PHP
Python
Ruby