原初角色和权限

概览

BigQuery 支持 Cloud IAM 原初角色进行项目级别访问。

BigQuery 的数据集级别原初角色在引入 Cloud Identity and Access Management 之前就已存在。建议您改用预定义的 Cloud IAM 角色

项目的原初角色

默认情况下,授予对项目的访问权限也会授予对该项目所含数据集的访问权限。可以按每个数据集覆盖默认访问权限。任何具有项目 Owner 角色的用户都可以撤消或更改任何项目角色。

创建项目时,BigQuery 会向创建了该项目的用户授予 Owner 角色。

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

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

您可以通过 Google Cloud Platform Console 授予或撤消项目的原初角色。您必须对项目拥有 Owner 访问权限才能授予或撤消新的项目角色。

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

数据集的原初角色

以下原初角色适用于数据集级别。

数据集角色 权限
READER
  • 可以读取、查询、复制或导出数据集中的表。可以读取数据集中的例程
    • 可以对数据集调用 get
    • 可以对数据集中的表调用 getlist
    • 可以对数据集中的例程调用 getlist
    • 可以对数据集中表的表数据调用 list
  • 映射到 bigquery.dataViewer 预定义角色
WRITER
  • 拥有 READER 角色的权限以及下述权限:
    • 可以在数据集中修改或附加数据
  • 映射到 bigquery.dataEditor 预定义角色
OWNER
  • 拥有 WRITER 角色的权限以及下述权限:
    • 可以对数据集调用 update
    • 可以对数据集调用 delete
  • 映射到 bigquery.dataOwner 预定义角色

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

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

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

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

OWNER

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

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面