【问题标题】:How can I give others permission to read my INFORMATION_SCHEMA.SCHEMATA in BigQuery?如何授予其他人在 BigQuery 中阅读我的 INFORMATION_SCHEMA.SCHEMATA 的权限?
【发布时间】:2026-02-04 19:25:01
【问题描述】:

我可以授予哪些权限让世界上的每个人都可以查询我的信息架构?即我希望每个人都能跑:

select * from `projectid`.INFORMATION_SCHEMA.SCHEMATA

目前我回来了:

Access Denied: Table projectid:INFORMATION_SCHEMA.SCHEMATA: User does not have permission to query table projectid:INFORMATION_SCHEMA.SCHEMATA

【问题讨论】:

    标签: permissions google-bigquery information-schema


    【解决方案1】:

    通常在 BigQuery 中,您在数据集级别设置权限。例如,此查询将为任何人运行,因为数据集对所有人都是公开的:

    SELECT * 
    FROM `fh-bigquery.flights.INFORMATION_SCHEMA.TABLES`
    

    但你不能这样做:

    SELECT * 
    FROM `fh-bigquery.INFORMATION_SCHEMA.SCHEMATA`
    

    这是因为您需要项目级别的权限才能查看我的所有数据集,即使是我尚未公开的数据集。

    如果您真的想与全世界共享所有数据集的架构,那么您可以为此创建一个自定义角色,并拥有bigquery.datasets.get 权限:

    然后您需要将此角色分配给所有用户 - 但这不是一个选项。

    在项目级别,您可以将此角色分配给以下角色之一:

    Google Account email: user@gmail.com
    Google Group: admins@googlegroups.com
    Service account: server@example.gserviceaccount.com
    G Suite domain: example.com
    

    这种情况下的一个选项:

    • 创建一个 Google 群组。
    • 将这个新角色分配给这个新的 Google 群组。
    • 让此 Google 群组免费加入。
    • 告诉人们“嘿,如果你想看我的项目 SCHEMATA,请加入这个小组”。

    那么一切都会好起来的。

    【讨论】:

      最近更新 更多