Как сделать разрешения для пользователя на все новые таблицы в Postgres? - PullRequest
0 голосов
/ 04 июля 2018

Предположим, у меня есть два пользователя в Postgres 9.6 с именами user1 и user2. Я хочу сделать разрешения для user2 для любой новой таблицы, созданной user1 без дополнительных явных команд предоставления для созданной таблицы. Другими словами, я хочу, чтобы следующие команды работали корректно:

  1. Предоставление разрешений на user2 ( Я не знаю, что здесь должно быть! )
  2. CREATE TABLE t1 (id int) (под user1)
  3. INSERT INTO t1 VALUES (5) (под user2)

Пожалуйста, обратите внимание, я не должен делать никаких разрешений между шагами 2 и 3.

На шаге 3 у меня всегда ошибка:

permission denied for relation t1

Я пробовал:

GRANT ALL PRIVILEGES ON DATABASE test TO user2;

и

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user2;

безуспешно.

Я тоже пробовал:

GRANT user1 TO user2

и это помогло. Но я не могу рассматривать это как решение, потому что user1 может иметь слишком высокие разрешения (например, это может быть postgres), которыми я не хочу делиться с user2.

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете сделать это, создав привилегии по умолчанию :

ALTER DEFAULT PRIVILEGES
FOR USER user1
GRANT ALL ON TABLES TO user2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...