基本角色和权限

BigQuery 支持 IAM 基本角色进行项目级访问。

适用于项目的基本角色

默认情况下,授予对项目的访问权限也会授予对该项目所含数据集的访问权限。可以按每个数据集覆盖默认访问权限。下表介绍了授予基本 IAM 角色成员的访问权限。

基本角色 功能
Viewer
  • 可以在项目中启动作业。所需的其他数据集角色取决于作业类型。
  • 可以列出和获取所有作业,以及更新用户在项目中启动的作业
  • 如果您在包含任何 Viewer 角色的项目中创建数据集,BigQuery 会为这些用户授予对新数据集的 bigquery.dataViewer 预定义角色。
Editor
  • 拥有 Viewer 角色的权限以及下述权限:
    • 可以在项目中创建新数据集
    • 如果您在包含任何 Editor 角色的项目中创建数据集,BigQuery 会向这些用户授予对新数据集的 bigquery.dataEditor 预定义角色。
Owner
  • 拥有 Editor 角色的权限以及下述权限:
    • 可以撤消或更改所有项目角色
    • 可以列出项目中的所有数据集
    • 可以删除项目中的任何数据集
    • 可以列出和获取项目中运行的所有作业,包括由其他项目用户运行的作业
    • 如果您创建了数据集,则对于新数据集,BigQuery 会向所有项目 Owner 授予 bigquery.dataOwner 预定义角色。

      例外:当用户运行查询时,系统会创建一个匿名数据集,以用于存储缓存的结果表。只有运行查询的用户才能获得匿名数据集的 OWNER 访问权限。

您可以通过 Google Cloud Console 授予或撤消项目的基本角色。创建项目时,会向创建该项目的用户授予 Owner 角色。

如需详细了解如何授予或撤消项目角色的访问权限,请参阅 IAM 文档中的授予、更改和撤消对资源的访问权限

适用于数据集的基本角色

以下基本角色适用于数据集级别。

数据集角色 功能
READER
  • 可以读取、查询、复制或导出数据集中的表。可以读取数据集中的例程
    • 可以对数据集调用 get
    • 可以对数据集中的表调用 getlist
    • 可以对数据集中的例程调用 getlist
    • 可以对数据集中表的表数据调用 list
WRITER
  • 拥有 READER 角色的权限以及下述权限:
    • 可以在数据集中修改或附加数据
OWNER
  • 拥有 WRITER 角色的权限以及下述权限:
    • 可以对数据集调用 update
    • 可以对数据集调用 delete

注意:数据集必须至少包含一个具有 OWNER 角色的实体。具有 OWNER 角色的用户不能移除自己的 OWNER 角色。

如需详细了解如何在数据集级层分配角色,请参阅控制对数据集的访问权限

当您创建新数据集时,BigQuery 会为以下实体添加默认数据集访问权限。您在创建数据集时指定的角色会覆盖默认值。

实体 数据集角色
所有对项目具有 Viewer 访问权限的用户 READER
所有对项目具有 Editor 访问权限的用户 WRITER
所有用户具有对项目的 Owner 访问权限,
和数据集创建者

OWNER

例外:当用户运行查询时,系统会创建一个匿名数据集,以用于存储缓存的结果表。只有运行查询的用户才能获得匿名数据集的 OWNER 访问权限。