Минимальное разрешение, необходимое для доступа к внешней таблице Redshift - PullRequest
0 голосов
/ 03 марта 2020

Согласно документации AWS,

Для запуска запроса Redshift Spectrum вам необходимы следующие разрешения:

  • Разрешение на использование схемы

  • Разрешение на создание временных таблиц в текущей базе данных

У меня есть Внешняя база данных, схема и таблица, созданные в этой схеме , Я создал нового пользователя Redshift, которому я предоставил привилегии 'use' для внешней схемы:

grant usage on external_schema to new_user;

Но я не предоставил привилегии 'temp' для external_database моей новой_пользователю.

Также , нет никаких привилегий по умолчанию, так как я проверил PG_DEFAULT_ACL с помощью основного пользователя, и в нем нет строк.

Может кто-нибудь сообщить мне, почему я могу запросить внешнюю таблицу?

1 Ответ

0 голосов
/ 13 марта 2020

В Amazon Redshift, База данных и Схема - это разные понятия. Пользовательские объекты (Redshift и внешние) создаются в схеме, а объекты TEMP создаются в «временных» схемах и доступны на уровне базы данных.

В некоторых случаях, когда применяется объединение между таблицами Spectrum и таблицами Redshift, Redshift необходимо создавать временные таблицы, и поэтому это упоминается в документации, чтобы избежать любых сбоев / ошибок для пользователей.

Вот что говорит документация :

Предоставляет право создавать временные таблицы в указанной базе данных. Для выполнения запросов Amazon Redshift Spectrum пользователь базы данных должен иметь разрешение на создание временных таблиц в базе данных.

Примечание По умолчанию пользователям предоставляется разрешение на создание временных таблиц их automati c членство в группе PUBLI C. Чтобы отменить право любых пользователей на создание временных таблиц, отмените разрешение TEMP из группы PUBLI C. Затем явно предоставьте разрешение на создание временных таблиц для c пользователей или групп пользователей.

...