BigQuery授予对特定数据集的访问权限

时间:2020-05-19 10:00:42

标签: google-cloud-platform google-bigquery google-iam google-cloud-iam

我有一个当前不是我的GCP项目成员的用户,我是该用户的所有者。我想授予他们特定数据集的读写和删除权限。我知道我可以使用“ BigQuery用户”角色将它们添加到项目中,但这为它们提供了所有数据集的权限。如何将它们添加到项目中,但仅授予它们特定数据集的权限?

2 个答案:

答案 0 :(得分:1)

sharing datasets时有两种情况需要考虑。

  1. 仅共享数据集(无法访问项目):

您可以使用预定义的IAM share和您要提供的访问权限,从BigQuery网络用户界面role进行数据收集。请记住,使用这种方法,用户将只能访问数据集,并且要执行诸如查询表之类的操作,他们将需要自己的GCP项目,在该项目中,他们拥有“ bigquery.jobs.create” { 3}},这是必需的。

关于它是如何工作的一个清晰示例是一个公共数据集,您可以在其中访问数据,但是必须从自己的项目中查询它。

  1. 共享数据集和项目访问权限(以运行查询):

此选项需要第一个permission数据集,此外,还需要级别项目的某些权限才能执行特定操作,例如运行查询。要允许用户在您的项目上运行查询(此执行的帐单将转到您的帐单帐户),您需要在项目级别为用户提供“ bigquery.jobs.create” share;此权限不会提供对数据集的访问权限,它允许在项目中进行查询。

如果由于某种原因您仅提供“ bigquery.jobs.create”权限而没有数据集访问权限,则他们将只能查询permission

对于这种特殊情况,您可以在项目级别提供“ BigQuery作业用户”预定义的IAM public datasets,在包含所需权限的3个角色中,该角色具有较小的作用域。

答案 1 :(得分:0)

您应该只能与他们共享单个数据集。以下对我有用:

  1. 选择要共享的数据集,然后单击共享数据集:screenshot
  2. 输入电子邮件,单击BigQuery-> BigQuery Admin
  3. 保存

它应该在数据集级别上起作用,并且不会授予对所有数据集的访问权限,请参见https://cloud.google.com/bigquery/docs/access-control中的详细信息:

您还可以在数据集级别分配角色,以仅提供对一个或多个数据集的访问权限。在Cloud IAM策略层次结构中,BigQuery数据集是项目的子资源。表和视图是数据集的子资源-它们从其父数据集继承权限。

此外,还有其他共享数据集的方式:https://cloud.google.com/bigquery/docs/dataset-access-controls#console

谢谢, 阿列克谢