Я читал следующий вопрос раньше: Предоставить права доступа к будущим таблицам в PostgreSQL? .
Но если я выполню следующий запрос, войдя в систему как rbourgeon
(который является суперпользователем)):
ALTER DEFAULT PRIVILEGES GRANT ALL ON TABLES IN SCHEMA myschema TO username;
Я заметил, что пользователь username
будет иметь права только на будущие таблицы , созданные мной , а не на все будущие таблицы.
Официальная документация PostgreSQL по этому вопросу гласит:
ALTER DEFAULT PRIVILEGES позволяет вам установить права, которые будут применяться к объектам, созданным вбудущее.(Это не влияет на привилегии, назначенные уже существующим объектам.) В настоящее время могут быть изменены только привилегии для таблиц (включая представления), последовательности и функции.
Вы можете изменить привилегии по умолчанию только дляобъекты, которые будут созданы вами самими или ролями, в которых вы участвуете. Права могут быть установлены глобально (т. е. для всех объектов, созданных в текущей базе данных), или только для объектов, созданных в указанных схемах.Привилегии по умолчанию, указанные для каждой схемы, добавляются к глобальным привилегиям по умолчанию для конкретного типа объекта.
Есть ли обходной путь?Потому что многие пользователи могут создавать таблицы в этой базе данных.