Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何限制BigQuery';s具有(项目级查看器)角色的每个人的数据集访问权限_Google Cloud Platform_Google Bigquery_Google Iam_Google Cloud Iam - Fatal编程技术网

Google cloud platform 如何限制BigQuery';s具有(项目级查看器)角色的每个人的数据集访问权限

Google cloud platform 如何限制BigQuery';s具有(项目级查看器)角色的每个人的数据集访问权限,google-cloud-platform,google-bigquery,google-iam,google-cloud-iam,Google Cloud Platform,Google Bigquery,Google Iam,Google Cloud Iam,我想限制对BigQuery中1个数据集的访问,以便除1个用户(me)外,任何人都无法查看该数据集。从文档中可以看出,除非我更改项目级权限并从中删除编辑器角色,否则这是不可能的 目前,有N(10-12)人对我的谷歌项目拥有项目级编辑器访问权限。它们都会不时与那里的多个服务交互。我希望保持这种方式,或者至少有一个新角色具有几乎相同的权限 根据我目前对googleiam权限的理解,我们可以通过向用户提供资源级别的访问权限来实现这一点。但如果我将BigQuery编辑器角色授予用户,他们仍然能够查看/访问

我想限制对BigQuery中1个数据集的访问,以便除1个用户(me)外,任何人都无法查看该数据集。从文档中可以看出,除非我更改项目级权限并从中删除
编辑器
角色,否则这是不可能的

目前,有N(10-12)人对我的谷歌项目拥有项目级
编辑器
访问权限。它们都会不时与那里的多个服务交互。我希望保持这种方式,或者至少有一个新角色具有几乎相同的权限

根据我目前对
googleiam
权限的理解,我们可以通过向用户提供资源级别的访问权限来实现这一点。但如果我将BigQuery编辑器角色授予用户,他们仍然能够查看/访问所有
数据集

为了解决这个问题,我必须为每个用户提供更细粒度的访问权限,这意味着为所有用户提供单个数据集级别的访问权限。这也意味着如果我有 10/12人和10/12数据集这可能很难管理


有没有更好的方法,我的意思是,我可以指定所有
编辑器
自定义角色
可以像他们已经在做的那样访问所有内容,除了这个特定的
数据集
您不能在表上定义访问控制。仅限于数据集级别,但还有其他选项可以帮助您:

如BigQuery的文档所述:

以下划线开头的数据集将从BigQuery web UI和经典web UI的导航窗格中隐藏。您仍然可以查询这些数据集中的表和视图,即使它们不可见。

您可以为自己指定
bigquery.datasets.create
,以创建这些“隐藏”数据集,使其远离此用户,或为自己指定以下云IAM角色:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.user
  • bigquery.admin
另一个解决方案是在BigQuery中创建。如下文所述:

授权视图允许您与特定用户和组共享查询结果,而不允许他们访问基础表。您还可以使用视图的SQL查询来限制用户能够查询的列(字段)

最后,我附上一篇关于的帖子,它可以帮助您更好地了解行访问级别是如何工作的

我还将附加一个问题,即在不创建单独视图的情况下允许用户访问不同的行


我希望这有帮助。

嗨,谢谢你的回答。我知道我们可以采用上述方法,但为每个数据集的每个用户分配权限是否很难管理?我的基本问题是:这是唯一的方法吗?没有任何简单的方法来管理权限。e、 g:如果我可以将编辑器保持在项目级别,然后以某种方式指定:X数据集即使由编辑器也无法访问,那么我认为管理它们的最佳方法是使用下划线命名数据集,以便对其他人隐藏它。您不能授予表访问权限,但可以使用以前提供的解决方案之一来管理您的用户权限。此外,要控制或指定X个人无法访问X数据集,您可以使用或使用,因为您可以保留您的编辑器角色并限制对其他人的访问。