如何查询我不拥有且没有 bigquery.jobs.create 权限的 table

How to query a table that I don't own and don't have bigquery.jobs.create permissions on it

有人在我不拥有的 BigQuery table 上共享了我,并且我对包含 table 的数据集没有 bigquery.jobs.create 权限。 我成功列出了数据集中的所有 table,但是当我尝试使用以下代码查询 table 时:

tables.map(async (table) => {
        const url = `https://bigquery.googleapis.com/bigquery/v2/projects/${process.env.PROJECT_ID}/queries`;
        const query = `SELECT * FROM \`${table.id}\` LIMIT 10`;
        const data = {
          query,
          maxResults: 10,
        };
        const reqRes = await oAuth2Client.request({
          method: "POST",
          url,
          data,
        });
        console.log(reqRes.data);
      });

我收到以下错误:

Error: Access Denied: Project project_id: <project_id>
gaia_id: <gaia_id>
: User does not have bigquery.jobs.create permission in project <project_id>.

我不能请求那些权限,在这种情况下我该怎么办?

重要提示: 我尝试在 GCP 中 运行 相同的查询并且它 运行 成功,但它似乎 创建了一个临时的 table 克隆 然后查询了这个 table 而没有原来的:

此处有两个项目:您的项目和包含 table 的项目。

您目前在 ${process.env.PROJECT_ID} 中创建您在 URL 中使用的作业,请尝试指定您自己的项目,您可以在其中创建作业。

您需要修改查询以包含 table 的项目以允许 BigQuery 找到它,因此请确保 ${table.id} 包含项目(table 的- 不是你的),数据集和 table.