如何查询我不拥有且没有 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.
有人在我不拥有的 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.