Как я могу разрешить другим пользователям читать мою INFORMATION_SCHEMA.SCHEMATA в BigQuery?

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

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 ответ

Решение

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

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

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

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

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

Если вы действительно хотите поделиться схемами всех своих наборов данных с миром, вы можете создать собственную роль только для этого с 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, присоединяйтесь к этой группе".

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

Другие вопросы по тегам