Создайте пользователя aws redshift с доступом к заданной схеме, включая таблицы удаления - PullRequest
0 голосов
/ 01 октября 2018

Я бы хотел разделить доступ к двум существующим схемам данных (с уже созданными таблицами) в режиме красного смещения, создав двух новых пользователей и предоставив им доступ к их соответствующим схемам.

Таким образом, user_1 должен иметь доступ только к schema_1, а user_2 должен иметь доступ только к schema_2.

Под доступом я имею в виду, что пользователи должны иметь возможность SELECT, INSERT, UPDATE, DELETE, DROP из всех текущих таблиц (независимо от того, кто их создал) и CREATE новых таблиц в своих схемах.

Я нашел следующие операторы для создания нового пользователя и предоставления ему определенных типов доступа:

Создание нового пользователя:

 CREATE USER user_1 WITH PASSWORD 'password_1';

Предоставление использования данной схеме:

 GRANT USAGE ON SCHEMA "schema_1" TO user_1;

Назначение привилегий:

 GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA "schema_1" TO user_1;

Изменение привилегий по умолчанию для сохранения разрешений для новых таблиц

 ALTER DEFAULT PRIVILEGES IN SCHEMA "schema_1" GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO user_1;

В документации в нем показано, как добавить все необходимые привилегии, кроме таблиц DROP.При тестировании это выдает ошибку ERROR: must be owner of relation table_to_drop.

. В качестве альтернативы я попытался предоставить все привилегии, как показано ниже ...

 GRANT ALL TABLES IN SCHEMA "schema_1" TO user_1;

... но это не перезаписывает требованиеон должен быть владельцем стола, который может уронить его.

Итак, вопрос в том, можно ли ограничить пользователя данной схемой с доступом к ней, как указано выше?

1 Ответ

0 голосов
/ 23 апреля 2019

Только владелец таблицы, владелец схемы или суперпользователь могут удалить таблицу.Таким образом, user_1 должен быть владельцем schema_1, а user_2 должен быть владельцем schema_2, если вы хотите, чтобы они могли удалять таблицы в соответствующей схеме.

Я предполагаю, что user_1 и user_2 не являются суперпользователями или вопрос спорный.

...