Louis
Louis

Reputation: 99

BigQuery Credential Problems when Accessing Google Sheets Federated Table

I defined a table as a federated table which refers to a google sheet. It works perfectly well when I query it from the google bigquery web UI. However, if I try to query it using the Tableau Software BigQuery driver, I get the following error message: No suitable credentials found to access Google Drive. Contact the table owner for assistance.

A few facts about my setup:

  1. When I use the BigQuery driver in Tableau, I log in using the same user id that I use when I go into the BigQuery web UI.
  2. Queries from Tableau to a native BigQuery table work fine.
  3. I enabled the google drive api in my cloud account.
  4. The google sheet and google big query account are under the same google user.
  5. I have no problem saving a bigquery query as a google sheet under that account.
  6. I tried sharing the sheet "to anyone that has the URL" and it does not work.

Upvotes: 5

Views: 7165

Answers (2)

Thib
Thib

Reputation: 41

I am not used to Tableau but had a similar issue with the Bigquery API in my Rails app using a Google services account.

There were two issues:

  • the scope of Bigquery, by default it only has access to the bigquery API, but you may add other scopes, like drive and spreadsheets. See here for Tableau https://help.tableau.com/current/pro/desktop/en-us/examples_googlebigquery.htm under the section Manually embed attributes in the XML of the workbook or data source file, the first example contains a SCOPE attribute. Each scope is separated by an empty space.

  • the access right to the document, in my case I had to ask the owner of the spreadsheet to give permission to my services account, using the email of the same services account, even so services account was created by a super admin and spreadsheet was created by a team member of the same organization.

I hope that helps.

Upvotes: 0

Evgeny Koblov
Evgeny Koblov

Reputation: 66

This is something Tableau should fix. The problem is that when they send request to BigQuery, they only pass BigQuery API scope. However they should also request GoogleDrive scope.

Upvotes: 5

Related Questions