Почему ALTER DEFAULT PRIVILEGES не работает должным образом? - PullRequest
0 голосов
/ 21 мая 2019

У меня 2 пользователя. Пользователь1 пишет и участвует в записи роли, а Пользователь2 - в роли «читатель».

Роль читателя имеет следующие права доступа:

GRANT CONNECT ON DATABASE to reader
GRANT USAGE ON SCHEMA x TO reader

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

ALTER DEFAULT PRIVILEGES IN SCHEMA x GRANT SELECT ON TABLES TO reader;

Но при использовании этой строки User2 не получит никаких разрешений для новых таблиц, созданных User1 / ролью записи.

Использование:

ALTER DEFAULT PRIVILEGES FOR ROLE writer IN SCHEMA x GRANT SELECT ON TABLES TO reader;

тоже не работает. Я должен четко назвать владельца этой таблицы. Чтобы заставить его работать, я должен использовать:

ALTER DEFAULT PRIVILEGES FOR ROLE User1 IN SCHEMA x GRANT SELECT ON TABLES TO reader;

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

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

...