You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除BigQuery项目中的公共数据集?

如何限制用户访问BigQuery中的公共数据集?

当然有办法解决你的问题!首先得明确一点:公共数据集是Google托管在专用项目(比如bigquery-public-data)里的,我们没法直接“移除”它们,但可以通过权限控制完全禁止你的用户访问这些数据集,从根源上避免误查询产生费用。

下面是两种最实用的方法:

1. 用IAM拒绝策略精准限制公共数据集访问

这是最直接的方案,通过拒绝权限来阻止用户访问指定的公共数据集项目:

  • 打开你的BigQuery项目的IAM页面,找到「拒绝策略」选项卡,创建一个新的拒绝策略。
  • 选择要限制的对象:可以是特定用户、用户组,或者针对roles/bigquery.user这类通用角色(覆盖所有普通用户)。
  • 指定拒绝的资源范围:输入projects/bigquery-public-data(这是绝大多数公共数据集所在的项目,如果还有其他第三方公共数据集,可以添加对应的项目ID)。
  • 添加需要拒绝的权限:
    • bigquery.datasets.getData:禁止用户读取公共数据集的内容
    • bigquery.datasets.list:禁止用户在BigQuery界面看到这些公共数据集
    • 如果要彻底阻止在公共数据集上运行查询,还可以添加bigquery.jobs.create(注意:如果是针对特定资源范围设置的,只会拒绝在bigquery-public-data上创建查询,不影响用户在你自己项目里的操作)

2. 创建自定义IAM角色,仅授予必要权限

如果不想用拒绝策略,也可以通过最小权限原则来控制:

  • 新建一个自定义IAM角色,只包含用户访问你自有数据集所需的权限,比如:
    • bigquery.datasets.getData(限制在你的项目内)
    • bigquery.jobs.create(限制在你的项目内)
    • bigquery.datasets.list(限制在你的项目内)
  • 把这个自定义角色分配给你的用户,替代默认的roles/bigquery.user这类权限较宽的角色。这样用户只能看到和访问你项目里的数据集,完全碰不到公共数据集。

额外提醒:除了权限控制,你也可以给BigQuery设置预算警报,一旦费用接近阈值就会收到通知,双重保障避免意外支出。

内容的提问来源于stack exchange,提问作者Bobbylank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:49:25