Запрос BigQuery для представления table_type без разрешения родительской таблицы

#view #permissions #google-bigquery

# #Вид #разрешения #google-bigquery

Вопрос:

Я столкнулся с уникальной проблемой. Моя учетная запись службы имеет разрешение BigQuery на просмотр данных для представления (table_type). Но нет разрешения для родительских таблиц, из которых создается представление. Теперь, как я могу запросить таблицу представления без разрешения родительской таблицы?

Ответ №1:

Для этого можно использовать так называемые авторизованные представления

Предоставление представления доступа к набору данных также известно как создание авторизованного представления в BigQuery. Авторизованное представление позволяет вам делиться результатами запроса с определенными пользователями и группами, не предоставляя им доступа к базовым исходным данным. Вы также можете использовать SQL-запрос представления для ограничения столбцов (полей), которые пользователи могут запрашивать.

См. Руководство по созданию авторизованного представления

Комментарии:

1. Мы не создаем представление. Он уже создан клиентом внутри их проекта. Мы предоставляем им идентификатор нашей учетной записи службы. Они добавили идентификатор нашей учетной записи службы в свой набор данных, который имеет таблицу просмотра и авторизованный просмотр (общий набор данных).

2. таким образом, они (клиент) должны следовать инструкциям о том, как правильно создать авторизованное представление, чтобы вы могли использовать это представление, не имея доступа к базовым таблицам. верно? :o)

3. Я воссоздал весь сценарий для тестирования с использованием своих учетных записей. Он не работает с учетной записью службы. Запрашивается разрешение на запрос родительской таблицы. Интересно, что он отлично работает для учетной записи службы, если родительская таблица является общедоступной таблицей.

4. авторизованные представления также работают для учетной записи службы. убедитесь, что вы все правильно настроили!

5. Я перепроверил его несколько раз. Пожалуйста, проверьте скриншот. Существует два представления с именами ‘view’ (общедоступная родительская таблица) и ‘view_from_other_dataset’ (частная родительская таблица). Я могу читать view таблицу с тем же кодом и разрешением. но не работает для view_from_other_dataset таблицы. Ссылка на скриншот: prnt.sc/vxzlko