我已经创建了一个服务帐户,并赋予了它一些权限,包括所有者和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);
让我再澄清一下,我是在免费层下。
Solved——Free tier似乎不允许你这么做