我可以访问BigQuery表,我可以在BigQuery控制台或gcloud命令行中使用它。但我无法在Datalab中针对它编写基本查询并获得访问被拒绝错误。
答案 0 :(得分:3)
Datalab旨在用于团队环境。笔记本可能包含代码执行结果(例如BigQuery SQL查询),并且可供项目成员访问。因此,Datalab使用项目中的App Engine服务帐户来访问数据。这确保了查看和执行笔记本的统一访问,并最大限度地降低了意外泄露数据的风险。如果您不控制对数据的访问,则可能需要请求授予对服务帐户的访问权限。您可以通过单击左侧导航栏中的权限并找到App Engine服务帐户,在Developers Console中找到该服务帐户。目前,Datalab不使用个人用户的凭据。
答案 1 :(得分:0)
是否与您在BigQuery Console和Datalab中工作的项目相同?如果是,您需要成为项目所有者/编辑者权限。
此外,请注意,在Google Datalab中,笔记本使用的是服务帐户来访问数据,而不是您自己的帐户。因此,您可以检查这两个帐户之间是否存在任何权限差异。例如,如果在您的查询中,您指的是另一个BigQuery项目中的数据集,则可以执行以下步骤:
在datalab笔记本中运行以下命令,以检查正在使用的服务帐户:
%%的bash curl --silent -H" Metadata-Flavor:Google" \ http://metadata/computeMetadata/v1/instance/service-accounts/default/email
将显示为步骤1结果的服务帐户添加到正在查询的其他项目的权限列表中