PostgreSQL: Можно ли создать роль или пользователя, которому разрешено создавать базы данных, но только с определенными именами? - PullRequest
0 голосов
/ 30 марта 2012

Вариант использования:

У меня есть веб-приложение, которое удаляет и воссоздает тестовую базу данных при каждом запуске теста. Я хотел бы, чтобы он делал это с ролью PG, которая не является суперпользователем и не может уничтожить или создать любую базу данных, но, скорее, просто иметь возможность удалить и создать определенное имя базы данных, такое как foo_test , Это возможно?

1 Ответ

1 голос
/ 30 марта 2012

Вы можете создать функцию с опцией «SECURITY DEFINER», которая создает базу данных и устанавливает разрешения для нее. Разумеется, он должен находиться в базе данных, к которой ограниченная роль может подключаться.

http://www.postgresql.org/docs/9.1/static/sql-createfunction.html

Возможно, вы сможете сделать все это с помощью функции SQL, но с plpgsql это тривиально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...