使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Google 标准 SQL 中的数据控制语言 (DCL) 语句

借助 BigQuery 数据控制语言 (DCL) 语句,您可以使用 Google 标准 SQL 查询语法设置和控制 BigQuery 资源。

使用这些语句可授予或移除对 BigQuery 资源的访问权限。

如需详细了解如何控制对特定 BigQuery 资源的访问权限,请参阅:

所需权限

需要具备以下权限才能运行 GRANTREVOKE 语句。

资源类型 权限
数据集 bigquery.datasets.update
bigquery.tables.setIamPolicy
查看 bigquery.tables.setIamPolicy

GRANT 语句

为用户授予针对 BigQuery 资源的角色。

语法

GRANT role_list
  ON resource_type resource_name
  TO user_list

其中:

  • role_list 是包含要授予的权限的一个角色或以逗号分隔的角色列表。如需详细了解可用的角色类型,请参阅了解角色

  • resource_type 是应用角色的资源类型。支持的值包括:SCHEMA(等同于数据集)、TABLEVIEWEXTERNAL TABLE

  • resource_name 是您要授予其权限的资源的名称。

  • user_list 是为其授予角色的以英文逗号分隔的用户列表。

user_list

使用以下格式指定用户:

用户类型 语法 示例
Google 帐号 user:$user@$domain user:first.last@example.com
Google 群组 group:$group@$domain group:my-group@example.com
服务帐号 serviceAccount:$user@$project.iam.gserviceaccount.com serviceAccount:robot@example.iam.gserviceaccount.com
Google 网域 domain:$domain domain:example.com
所有 Google 帐号 specialGroup:allAuthenticatedUsers specialGroup:allAuthenticatedUsers
所有用户 specialGroup:allUsers specialGroup:allUsers

如需详细了解表中的每种用户类型,请参阅与身份相关的概念

示例

以下示例会向用户 tom@example.comsara@example.com 授予针对名为 mycompany 的数据集的 bigquery.dataViewer 角色。

GRANT `roles/bigquery.dataViewer` ON SCHEMA `mycompany`.revenue
TO "user:tom@example.com", "user:sara@example.com"

REVOKE 语句

从用户列表中移除针对 BigQuery 资源的角色。

语法

REVOKE role_list
  ON {SCHEMA | TABLE | VIEW | EXTERNAL_TABLE} resource_name
  FROM user_list

其中:

  • role_list 是包含要移除的权限的一个角色或以逗号分隔的角色列表。如需详细了解可用的角色类型,请参阅了解角色

  • resource type 是将移除角色的资源类型。支持的值包括:SCHEMA(等同于数据集)、TABLEVIEWEXTERNAL TABLE

  • resource_name 是您要撤消其角色的资源的名称。

  • user_list 是从中撤消角色的以英文逗号分隔的用户列表。

示例

以下示例会从 example-team@example.com 群组和服务帐号中移除对 myProject.myDataset 数据集的 bigquery.admin 角色:

REVOKE `roles/bigquery.admin` ON SCHEMA myProject.myDataset
FROM "group:example-team@example.com", "serviceAccount:user@test-project.iam.gserviceaccount.com"