【问题标题】:Trying to read/run query on bigquery from golang ad get Access Denied: BigQuery BigQuery: No OAuth token with Google Drive scope was found尝试从 golang 广告读取/运行对 bigquery 的查询被拒绝访问:BigQuery BigQuery:未找到具有 Google Drive 范围的 OAuth 令牌
【发布时间】:2018-12-06 10:44:07
【问题描述】:

我对 golang 和 google cloud 还是很陌生。 我尝试编写以下代码并得到:(对来自 golang 的大查询执行简单查询) 读取 %v googleapi 时出错:错误 403:访问被拒绝:BigQuery BigQuery:找不到具有 Google Drive 范围的 OAuth 令牌。,accessDenied 我阅读了一些关于它的 stackoverflow 项目,但找不到任何关于 golang 的信息。

我的代码:

ctx := context.Background()
projectID := "XXXXXXXXX"
jsonPath:="XXXXX.json"
client, err := bigquery.NewClient(ctx, projectID,option.WithCredentialsFile(jsonPath))
if err != nil {
   fmt.Println ("Failed to create client: %v", err)
   return
}
destDatasetID:="dataset1"
destTableID:="table1"
q := client.Query("SELECT * from table1")
q.Location = "EU" // Location must match the dataset(s) referenced in query.
q.QueryConfig.Dst = client.Dataset(destDatasetID).Table(destTableID)
q.AllowLargeResults = true
fmt.Println("prepare complete")
it, err := q.Read(ctx)
if err != nil {
   fmt.Println("Error on read %v",err)
   return
}

【问题讨论】:

    标签: go google-bigquery access-denied


    【解决方案1】:

    代码没问题,检查您的service account 访问权限为: 转到项目控制台-> service accounts -> 创建密钥以及big query 访问权限 -> 最后创建密钥并导出为json

    有几件事要提: 1. 在授予对服务帐户的访问权限时要保守(需要最少的访问权限) 2. 相应地在 shell 中重新命名您的密钥以避免混淆例如:bigQueryReadOnly.json

    【讨论】:

      猜你喜欢
      • 2018-02-22
      • 2018-09-23
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 2021-06-28
      • 1970-01-01
      • 2022-01-23
      相关资源
      最近更新 更多