Redshift: новая таблица, но члены группы не могут запрашивать - PullRequest
1 голос
/ 04 февраля 2020

В Redshift у меня есть группа data_reader db, определенная следующим образом

CREATE GROUP data_reader;
GRANT USAGE ON SCHEMA reports TO GROUP data_reader;
GRANT SELECT ON ALL TABLES IN SCHEMA reports TO GROUP data_reader;

И я заметил, что всякий раз, когда я создаю новую таблицу, члены группы не могут автоматически запрашивать из таблицы. Они получают ошибку Permission Denied. Повторный запуск

GRANT SELECT ON ALL TABLES IN SCHEMA reports TO GROUP data_reader;

Исправляет разрешение.

Это просто причуда Redshift или есть какой-то другой способ, которым я должен определять свои группы БД?

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Этот оператор предоставляет доступ только к уже созданным таблицам:

GRANT SELECT ON ALL TABLES IN SCHEMA reports TO GROUP data_reader;

Чтобы предоставить доступ по умолчанию, необходимо настроить права по умолчанию:

GRANT USAGE ON SCHEMA reports TO group data_reader; --Most probably already granted
ALTER DEFAULT PRIVILEGES IN SCHEMA reports GRANT SELECT ON TABLES to group data_reader;

Теперь все новые созданные таблицы будет предоставлено группе для выбора.

0 голосов
/ 04 февраля 2020

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

...