【问题标题】:BigQuery data access to two different users without duplicating data对两个不同用户的 BigQuery 数据访问权限,无需复制数据
【发布时间】: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


【解决方案1】:

视图实际上是您问题的完美解决方案。您只需在视图的底层 SQL 中限制每个组在每个视图中看到的列。

更多详情见:

【讨论】:

    猜你喜欢
    • 2015-12-30
    • 1970-01-01
    • 2020-09-05
    • 2020-11-03
    • 1970-01-01
    • 2012-02-17
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多