Redshift Table Ownership и Drop Query - PullRequest
0 голосов
/ 07 апреля 2020

Users & Scope -

  1. write_user - Все Доступ ко всем таблицам
  2. read_user - Доступ для чтения ко всем таблицам
  3. backup_pruner - Все GRANTS для всех таблиц в резервное копирование схемы.

Моя формулировка проблемы -

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

Теперь для удаления таблиц я должен использовать пользователя backup_pruner, и здесь проблема. Поскольку write_user создает таблицу здесь, она является владельцем всех таблиц в резервном хранилище, и только владельцы / суперпользователи могут удалять таблицы.

Как продолжить отсюда?

Чтобы ответить на вопрос, ПОЧЕМУ используйте DROP Tables для отдельного пользователя -

Чтобы ограничить доступность таблиц как DROP, если они не используются должным образом / любой угловой случай, это может иметь катастрофические последствия и для других таблиц.

1 Ответ

1 голос
/ 09 апреля 2020

Попробуйте использовать хранимую процедуру, созданную с помощью SECURITY DEFINER, для удаления таблиц. Созданный таким образом SP запускается с разрешениями создателя.

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

Я создал пример такого подхода на GitHub: sp_controlled_access

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...