2014-09-22 41 views
5

我能找到的范围bigquery.readonly范围允许哪些操作?

https://www.googleapis.com/auth/bigquery.readonly

唯一的文档是非常无益的简短Blurb的here它说“BigQuery中查看数据。”我搜索了高低。

这对应于什么操作?用户可以启动异步作业吗?他们可以取得完成的工作吗?他们可以运行同步作业吗?有没有目标表?我正在寻找一个只允许运行tabledata.list()的作用域,或者获取完成的异步作业结果(即不允许用户启动查询但允许他们获取已经运行的查询数据)

回答

2

操作被允许以只读范围:

  • projects.list
  • datasets.get
  • datasets.list
  • tables.get
  • tables.list
  • tabledata.list
  • jobs.get
  • jobs.list
  • jobs.query
  • jobs.getQueryResults

这是看代码,所以名单应规范。因此在回答您的问题时:

  • 用户可以启动异步作业吗?只有jobs.query()会在封面下启动一个异步作业。 (它通常会同步返回,但是当它超时时,可以使用jobs.getQueryResults()获取结果
  • 它们可以获取已完成的作业吗?是...可以使用jobs.get()或jobs.getQueryResults()
  • 只能通过jobs.query()才能运行同步作业
  • 是否有目标表?jobs.query()不支持指定目标表,因此不支持读目标表 - 只范围。
+0

谢谢您的回答! 有没有办法来限制通过tabledata.list()用户读取数据,所以他们不能屈启动eries? – 2014-09-22 17:55:50

+1

为了开始查询,用户需要具有对项目的读取权限。因此,您可以让他们读取表格所在的数据集,但不能让他们成为项目的成员。然后,他们将无法运行查询(您可能有一个单独的项目,您用于这种情况)。 – 2014-09-22 18:38:48

+0

太棒了!感谢您的快速响应,我假设它对于bigquery.insertdata作用域的数据流插入操作类似? (即用户可以流入数据但不能查询)。从文件来看,你不清楚你是否必须有一个项目角色才能开始工作(虽然很明显这足以启动工作,但不清楚它是否必要)。我仍然不清楚委派给Project Roles的权限以及授予Dataset ACL的权限。具有WRITE权限但没有项目角色的用户是否可以创建表格? – 2014-09-22 20:05:29