У меня 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, которые собираются публиковать таблицы в этой схеме.
Я не понимаю этого. Я делаю что-то неправильно? Я что-то пропустил? Кажется, не так много людей с этой проблемой. Не могли бы вы помочь мне и скажите мне, почему стандартная строка наилучшей практики не работает и почему я должен четко назвать владельца?