【发布时间】:2017-12-15 10:33:40
【问题描述】:
我们有两种类型的用户和两个项目。
用户:
由于无法根据列授予用户访问权限(甚至不能基于表,因为 BigQuery 的访问控制只是在数据集级别),因此想到的最简单的解决方案是:
- 在两个不同的数据集或项目中复制数据,一个包含所有数据,另一个包含第二组可以查询的列。
我们如何在不重复数据的情况下找到解决方案?
【问题讨论】:
-
视图实际上是完美的解决方案。为什么你认为用户仍然可以查询整个表?您可以限制他们在底层 SQL 中的每个视图中看到的列。 cloud.google.com/bigquery/docs/share-access-views
-
为什么说 VIEW 不是正确的解决方案?您只授予 VIEW 权限,这样他们就无法查询其他列。
-
我写的视图不是正确的解决方案,因为我想我应该直接将用户添加到表中以便能够查询,因为错误是说用户在表上没有足够的授权.比我阅读了@GrahamPolley 在他的评论中的链接,我发现我必须与视图共享表格,而不是直接与用户共享。
-
@GrahamPolley:请提供您的评论作为答案,然后我接受它作为正确答案,如果没有,请告诉我这样做。谢谢!
-
@Majico - 还要检查 stackoverflow.com/a/45991950/5221944 以获取其他“技巧”:o)
标签: google-bigquery google-cloud-platform