我想在BigQuery中限制对1个数据集的访问,以便除1个用户以外的任何人都无法查看该数据集。从文档看来,除非我更改项目级别的权限,否则这似乎是不可能的。
当前,有N(10-12)个人在我的Google项目中拥有项目级别的Editor
访问权限。它们不时与那里的多种服务交互。我想保持这种状态,或者至少要有一个具有几乎相同权限的新角色。
根据我目前对Google IAM
权限的了解,我们可以通过为用户提供资源级别的访问权限来做到这一点。但是,如果我将BigQuery Editor角色赋予用户,他们仍然可以查看/访问所有datasets
。
为了解决这个问题,我必须为每个用户提供更细粒度的访问权限,这意味着向所有用户提供单独的数据集级别的访问权限。再次意味着如果我有 10/12人和10/12数据集很难管理。
是否有更好的方法来执行此操作,我的意思是我可以指定所有Editors
或Custom Role
可以访问除已完成的dataset
以外的所有内容,例如ReturnType
答案 0 :(得分:1)
您不能在表上定义访问控制。仅限于数据集级别,但是还有其他选项可以帮助您:
如BigQuery关于creating datasets的文档所述:
在BigQuery网络用户界面和传统网络用户界面的导航窗格中,以下划线开头的数据集被隐藏。即使它们不可见,您仍然可以在这些数据集中查询表和视图。
您可以给自己bigquery.datasets.create
,以远离这些用户创建这些“隐藏”数据集,或者按照here的要求为自己分配以下Cloud IAM角色:
bigquery.dataEditor
bigquery.dataOwner
bigquery.user
bigquery.admin
另一种解决方案是在BigQuery中创建authorized views。如此处所述:
授权视图允许您与特定用户和组共享查询结果,而无需授予他们访问基础表的权限。您还可以使用视图的SQL查询来限制用户能够查询的列(字段)。
最后我附上关于how to control access to BigQuery at row level with groups的帖子,可以帮助您更好地了解行访问级别的工作原理。
我还将附上这个问题,即允许用户访问不同的行而不创建单独的视图here.
我希望这会有所帮助。