BigQuery授权查看多个项目

时间:2017-08-31 13:45:16

标签: google-bigquery

我正在尝试设置以下权限:

  • 所有分析师都可以访问[Project X]:[数据集A],其中包含指向[Project Y]的视图:[数据集B]。

我按照教程如何在https://cloud.google.com/bigquery/docs/share-access-views设置了授权视图​​,并在[Project X]上给了分析师权限bigquery.jobUser,我和他们共享了数据集[Project X]:[Dataset A]作为观众。

此设置失败,并显示错误消息,指出用户无法访问[Project Y]中的基础表:[数据集B]。如果我共享数据集[Project Y]:[Dataset B]作为查看器,它可以工作。由于授权视图,我认为这不是必要的。

感谢您澄清这一点。

2 个答案:

答案 0 :(得分:4)

我有双重检查和"交叉项目"不是问题 - 你应该再试一次 - 也许是从头开始

同时,我可以分享我如何处理这个 - 我有额外的层,所以不仅用户不能访问基础表,但你也可以设置这些用户甚至不知道涉及哪些表 - 这是一个上述情况"简单"设置用户仍然可以访问View并可以查看基础表的位置

所以,"技巧"是要引入另一个数据集 - ProjectX:Dataset0,您可以在其中创建如下所示的简单视图 - 让它命名为ProxyView

SELECT *
FROM [ProjectX:DatasetA.YourInitialView]

现在,
1.您为用户提供对ProjectX的访问权限:数据集0 2.您授权ProjectX:Dataset0.ProxyView with View访问ProjectX:DatasetA
3.最后你授权ProjectX:DatasetA.YourInitialView with View访问ProjectY:DatasetB

自从授权视图推出以来,

对我有用

答案 1 :(得分:0)

您需要做的是转到旧的Bigquery UI,单击[Project Y]:[Dataset B]旁边的三角形按钮,然后选择共享数据集。添加具有授权视图的共享,在对话框中选择[Project X]:[Dataset A]。[View 1],然后添加并保存共享设置。

这将允许[Project X]:[Dataset A]。[View 1]访问[Project Y]:[Dataset B]中的下划线数据。如果在[Project X]:[Dataset A]中有很多视图,添加所有视图将是一个痛苦的过程。