2014-09-22 13 views
5

Jedyna dokumentacja znajdę zakresuJakie operacje dopuszcza zakres bigquery.readonly?

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

jest niezmiernie pomocne krótki blurb here który mówi „Pokaż dane w BigQuery.” I przeszukałem wysokie i niskie.

Jakie operacje to dotyczy? Czy użytkownik może rozpocząć asynchroniczne zadania? Czy mogą przynieść zakończone prace? Czy mogą wykonywać synchroniczne zadania? Z tabelami miejsc docelowych lub bez nich? Szukam zakresu, który zezwala tylko na uruchamianie tabledata.list() lub pobieranie zakończonych wyników asynchronicznych zadań (tj. Nie pozwala użytkownikowi na uruchamianie zapytań, ale pozwala im uzyskać dane z uruchomionych zapytań)

Odpowiedz

2

Operations, że dozwolone są tylko do odczytu zakresie:

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

to patrząc na kod, więc lista powinna być kanoniczny . Więc w odpowiedzi na twoje pytania:

  • Czy użytkownik może rozpocząć asynchroniczne zadania? Tylko jobs.query(), które uruchamia asynchroniczne zadanie pod okładkami. (często powraca synchronicznie, ale po przekroczeniu limitu czasu można uzyskać wyniki za pomocą instrukcji jobs.getQueryResults().)
  • Czy mogą one pobrać zakończone zadania? Tak ... albo z jobs.get() lub jobs.getQueryResults()
  • Czy mogą uruchamiać zadania synchroniczne tylko za pomocą zadania.query().
  • Z lub bez tabel docelowych? Jobs.query() nie obsługuje określania tabeli docelowej, więc nie, tabele docelowe nie są obsługiwane z odczytem zakres -tylko.
+0

Dzięki za odpowiedź! Czy istnieje sposób, aby ograniczyć użytkownika do odczytu danych poprzez tabledata.list(), więc nie mogą rozpocząć qu eries? –

+1

Aby rozpocząć kwerendę, użytkownik musi mieć dostęp READ do projektu. Możesz więc dać im dostęp do odczytu na zbiorze danych, w którym znajduje się tabela, ale nie możesz ich przypisać do projektu. Wtedy nie będą mogli uruchamiać zapytań (możesz mieć osobny projekt, którego używasz w tym przypadku). –

+0

Świetnie! Dziękuję za twoją szybką odpowiedź, zakładam, że działa to podobnie do wstawień strumieniowych z zakresem bigquery.insertdata? (tj. użytkownicy mogą przesyłać dane strumieniowo, ale nie mogą wysyłać zapytań). Z dokumentacji nie wynikało, że musisz mieć rolę projektową, aby rozpocząć pracę (chociaż było jasne, że to * wystarczało *, aby rozpocząć pracę, nie było jasne, czy było to konieczne *). Nadal nie jestem dokładnie jasne, jakie uprawnienia są delegowane do Ról projektu i jakie uprawnienia są delegowane do listy ACL zestawu danych. Czy użytkownicy mający dostęp do WRITE, ale bez roli projektu, tworzą na przykład tablice? –