BigQuery 错误 403 在查询中使用 "with" 和 "join" 语句时权限被拒绝



我正在使用python3和BigQuery进行一个项目,在谷歌云BigQuery库中遇到了一个奇怪的行为。当我执行像这样的简单查询时

select * from my.project where field1="foo" and field2="bar"

程序运行良好,但当我尝试使用一个更";复数";类似查询:

with a as (...),b as(...)select * from a as a_elselect * from b as b_eljoin b_el on a_el.field1 = b_el.field1 ...

程序崩溃:

google.api_core.exceptions.PermissionDenied: 403 request failed: the user does not have 'bigquery.readsession.create' permission

所以,我知道这是一个许可问题,但我的问题是:引擎盖下有什么区别?为什么需要额外的许可?这些表在同一个项目中,那么问题出在哪里呢?

我使用query((方法执行查询

google-cloud-bigquerypython库利用BigQuery Storage读取api更快地下载查询结果。权限是roles/bigquery.user预定义角色的一部分。您可能在该项目中拥有一个自定义角色,该角色不包括readsession权限,这些权限是BigQuery存储API特定的权限。这听起来像是第一个查询的结果足够小以至于无法创建存储API会话的情况。

有关权限的详细信息,请访问控制页。

最新更新