【问题标题】:BigQuery Authorized View over multiple projectsBigQuery 授权查看多个项目
【发布时间】:2018-09-06 17:29:27
【问题描述】:

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

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

我按照关于如何在https://cloud.google.com/bigquery/docs/share-access-views 此处设置授权视图的教程进行操作,并授予分析师在 [Project X] 上的 bigquery.jobUser 权限,并以查看者的身份与他们共享数据集 [Project X]:[Dataset A] .

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

感谢您澄清这一点。

【问题讨论】:

  • 你应该再试一次——如果你都做对了,它肯定会奏效!要说更具体的东西很难,因为您刚刚提到了您在该教程中所做的一切!再说一遍-从授权的角度来看,您不需要授予对实际表的访问权限。希望这可以为您澄清事情
  • 对不起,我不能更具体。我认为这可能是由于教程讨论了同一个项目中的授权视图,而我的视图位于不同的项目中,如上所述。
  • 我认为,不同的项目应该不是问题。我今天晚些时候有机会可以验证

标签: google-bigquery


【解决方案1】:

我有仔细检查,“跨项目”不是问题 - 你应该再试一次 - 也许从头开始

同时,我可以分享我如何处理这个问题 - 我有额外的层,所以不仅用户无权访问基础表,而且您还可以设置这些用户甚至不知道涉及哪些表 - 这是一个在上面提到的“简单”设置中,用户仍然可以访问 View 并且可以查看基础表

因此,“诀窍”是引入另一个数据集 - ProjectX:Dataset0,您可以在其中创建如下所示的简单视图 - 我们将其命名为 ProxyView

SELECT *
FROM [ProjectX:DatasetA.YourInitialView]

现在,
1. 您授予用户对 ProjectX:Dataset0 的查看访问权限
2. 您授权 ProjectX:Dataset0.ProxyView 具有对 ProjectX:DatasetA 的查看访问权限
3. 最后你授权 ProjectX:DatasetA.YourInitialView 以查看 ProjectY:DatasetB 的访问权限

自引入授权视图以来为我工作

【讨论】:

  • 在 Docs 中可能不会立即显现的一点是,如果您完全为另一个项目创建视图,那么这些视图(在您的项目中)也必须对您项目中的基础数据集具有视图访问权限。这是除了与 IAM 组或用户(在另一个项目中)共享视图数据集之外。
【解决方案2】:

您需要做的是转到旧的 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]中有很多视图,把它们都加起来是一个痛苦的过程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-30
    • 2013-12-04
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多