为什么会出现“Forbidden:403拒绝访问:BigQuery BigQuery:使用pandas read_gbq时全局文件模式'时权限被拒绝

wnavrhmk  于 2023-06-20  发布在  其他
关注(0)|答案(1)|浏览(89)

我正在尝试使用Python来读取BigQuery中的视图。我之前使用过pandas-gbq的0.14.0版本,并通过以下操作使用服务帐户进行身份验证:

import pandas as pd
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file(PATH_TO_JSON)

pd.read_gbq("""
                SELECT
                    *
                FROM BQ_VIEW,

                project_id="PROJECT_ID",
                dialect="standard",
                private_key=credentials
                )

其中PATH_TO_JSON、BQ_VIEW和PROJECT_ID已填写相关信息。这没有任何问题。然而,我现在正在另一个项目中工作,该项目使用的是pandas-gbq的0.15.0版本,其中private_key argument已被弃用,并已被credentials取代。在the guide中,我尝试了以下操作:

import pandas as pd
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file(PATH_TO_JSON)

pd.read_gbq("""
                SELECT
                    *
                FROM BQ_VIEW,

                project_id="PROJECT_ID",
                dialect="standard",
                credentials=credentials
                )

但是,当我运行它时,我得到了错误:

  • 禁止访问:403拒绝访问:BigQuery BigQuery:全局文件模式时权限被拒绝 *

有没有人能告诉我我哪里错了?
谢谢!

2nbm6dog

2nbm6dog1#

这个问题与论据无关。您面临的错误是由于对服务帐户的IAM权限不正确。看起来你正在尝试查询一个引用BigQuery之外的表的视图。本文档说明,如果外部表引用Cloud Storage文件,则需要授予服务帐户storage.objectViewer角色。

相关问题