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