Как разрешить использование на всех схемах в Redshift? - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу создать пользователя только для чтения, который должен иметь доступ SELECT ко всем таблицам во всех схемах. Я проверил документацию по красному смещению, но похоже, что мы можем предоставить доступ только к определенной схеме в одном выражении SQL (Не все схемы одновременно. Этот пользователь только для чтения должен иметь доступ только для чтения ко всем таблицам / схемам, которые будут созданы в будущем. Я не уверен, как это сделать.

Я что-то упустил или это специально сделано AWS? Если это ограничение, то каков возможный обходной путь для его решения?

1 Ответ

0 голосов
/ 24 сентября 2018

Вы не можете предоставить SELECT («только для чтения») разрешение одновременно для нескольких схем в Redshift, поскольку вы уже обнаружили, что это можно сделать только для каждой схемы. Также невозможно установить разрешения таким образом, чтобы пользователь автоматически получал любые разрешения для вновь создаваемых схем, если только этот пользователь не является «суперпользователем». Это типично для большинства платформ баз данных, то есть разрешения уровня схемы должны быть созданы после создания схемы.

Я предлагаю вам лучший вариант - взглянуть на процесс, который создает новые схемы, и посмотреть, могут ли разрешения GRANT быть выполнены как часть этого процесса. Рассмотрите возможность использования группы пользователей вместо пользователя, это облегчит управление, если вам потребуется добавить или изменить пользователя, который имеет эти разрешения.

, например

CREATE GROUP readonlyusers;
CREATE USER my_readonly_user WITH PASSWORD 'abc' IN GROUP readonlyusers;

-- when creating a new schema
CREATE SCHEMA IF NOT EXISTS myschema;
GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO GROUP readonlyusers;
...