首页 > 解决方案 > BigQuery 写入 API Java - PERMISSION_DENIED:资源上的权限“TABLES_UPDATE_DATA”被拒绝

问题描述

我创建了一个服务帐户并为其授予了许多权限,包括所有者和 BigQuery 数据编辑器/所有者。

该电子邮件具有所有者权限以及所有相关的 bigquery 权限。

我下载了密钥 JSON 文件,在将其添加到我的环境变量后,我可以看到它在那里并正确引用,但是当createWriteStream()调用该方法时,我收到:

PERMISSION_DENIED: Permission 'TABLES_UPDATE_DATA' denied on resource
'projects/<PROJECT-ID>/datasets/D1/tables/T1' (or it may not exist).

我确保项目ID是正确的,并且表名和数据集名也正确。

失败发生在以下块的最后一行:

WriteStream stream = WriteStream.newBuilder().setType(WriteStream.Type.COMMITTED).build();
TableName parentTable = TableName.of(projectId, DATASET_NAME, TABLE_NAME);
CreateWriteStreamRequest createWriteStreamRequest =
                    CreateWriteStreamRequest.newBuilder()
                            .setParent(parentTable.toString())
                            .setWriteStream(stream)
                            .build();
WriteStream writeStream = client.createWriteStream(createWriteStreamRequest);

让我也澄清一下我在免费套餐下。

标签: javagoogle-cloud-platformgoogle-bigquery

解决方案


已解决 - 免费套餐似乎不允许您这样做


推荐阅读