如何解决验证服务帐户并执行简单查询
我有一个由供应商客户提供的服务帐户
我正在使用.NET API通过他们提供的服务帐户从他们的数据库中提取数据 我正在尝试运行一个简单的查询“从[projectId]。[datasetId]。[table]中选择名称” 我收到以下错误:
Access Denied: Project [projectId]: User does not have bigquery.jobs.create permission in project [projectId]. [403]
Errors [
Message[Access Denied: Project [projectId]: User does not have bigquery.jobs.create permission in project [projectId].] Location[ - ] Reason[accessDenied] Domain[global]
]
- 如何查看我的服务帐户权限?
- 如何验证我的服务帐户?
- 执行“选择”的唯一方法是获得工作许可?
解决方法
- 有多种方法可以测试documentation website上的IAM权限。使用curl可以做到:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://cloudresourcemanager.googleapis.com/v1/projects/project-id:testIamPermissions
尽管您已经知道缺少哪些权限,所以您需要询问供应商客户端以提供BigQuery访问权限。 To add access the instructions are here.
-
就身份验证而言,您只需要发送服务帐户json密钥或通过SDK进行身份验证即可,具体取决于您访问它的方式,但是通常您会以某种方式发送json密钥或指出json密钥的位置到SDK。
-
有一个number of ways to query BigQuery,但所有这些都是通过“作业”发送的,即查询本身。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。