首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在查询bigquery.tables.updateData时拒绝INFORMATION_SCHEMA.COLUMNS权限

在查询bigquery.tables.updateData时拒绝INFORMATION_SCHEMA.COLUMNS权限
EN

Stack Overflow用户
提问于 2021-06-24 10:49:09
回答 1查看 2.3K关注 0票数 1

我使用具有以下角色的服务帐户查询bigquery (通过databricks):

代码语言:javascript
复制
BigQuery Data Viewer
BigQuery Job User
BigQuery Metadata Viewer
BigQuery Read Session User

查询是:

代码语言:javascript
复制
SELECT distinct(column_name) FROM `project.dataset.INFORMATION_SCHEMA.COLUMNS` where data_type = "TIMESTAMP" and is_partitioning_column = "YES"

我实际上是通过Azure数据库查询的:

代码语言:javascript
复制
  spark.read.format("bigquery")
  .option("materializationDataset", dataset)
  .option("parentProject", projectId)
  .option("query", query)
  .load()
  .collect()

但我得到了:

代码语言:javascript
复制
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Access Denied: Table project:dataset._sbc_f67ac00fbd5f453b90....: Permission bigquery.tables.updateData denied on table project:dataset._sbc_f67ac00fbd5f453b90.... (or it may not exist).",
    "reason" : "accessDenied"
  } ],

添加BigQuery Data Editor之后,查询工作正常。为什么我需要写权限来查看这个元数据?我能给你更低的权限吗?

在文档中我看到了那个只需要数据查看器。,所以我不知道我做错了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-24 11:51:19

如果没有指定特定的表名,BigQuery将所有查询结果保存到临时表中。

文档中,需要以下权限。

  • 创建新表的bigquery.tables.create权限
  • bigquery.tables.updateData将数据写入新表、覆盖表或将数据追加到表
  • 运行查询作业的bigquery.jobs.create

由于服务帐户已经具有BigQuery Job User角色,所以它能够运行查询,因此它需要BigQuery Data Editor角色来获得bigquery.tables.createbigquery.tables.updateData权限。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68114321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档