Как я могу дать другим разрешение читать мои INFORMATION_SCHEMA.SCHEMATA в BigQuery? - PullRequest
0 голосов
/ 24 января 2020

Какие привилегии я могу предоставить, чтобы каждый человек в мире мог запрашивать мою информационную схему? т.е. я хочу, чтобы каждый мог запустить:

select * from `projectid`.INFORMATION_SCHEMA.SCHEMATA

В настоящее время я вернусь:

Access Denied: Table projectid:INFORMATION_SCHEMA.SCHEMATA: User does not have permission to query table projectid:INFORMATION_SCHEMA.SCHEMATA

1 Ответ

0 голосов
/ 24 января 2020

Обычно в BigQuery вы устанавливаете разрешения на уровне набора данных. Например, этот запрос будет выполняться для всех, так как набор данных для всех публикуется c:

SELECT * 
FROM `fh-bigquery.flights.INFORMATION_SCHEMA.TABLES`

Но вы не можете сделать это:

SELECT * 
FROM `fh-bigquery.INFORMATION_SCHEMA.SCHEMATA`

Это потому, что вы Мне нужны разрешения на уровне проекта, чтобы увидеть все мои наборы данных, даже те, которые я не сделал publi c.

Если вы действительно хотите поделиться схемами всех ваших наборов данных с миром, то вы можете создать пользовательская роль как раз для этого, с разрешением bigquery.datasets.get:

Затем вам нужно назначить эту роль всем пользователям - но это не вариант.

На уровне проекта вы можете назначить эту роль одному из следующих:

Google Account email: user@gmail.com
Google Group: admins@googlegroups.com
Service account: server@example.gserviceaccount.com
G Suite domain: example.com

Один вариант в этом случае:

  • Создайте группу Google.
  • Дайте эту новую роль этой новой группе Google.
  • Сделайте эту группу Google бесплатной для присоединения.
  • Скажите людям "эй, если вы хочу посмотреть мой проект SCHEMATA, присоединяйся к этой группе ".

Тогда все будет работать.

...