Два владельца одной и той же базы данных PostgreSQL - PullRequest
11 голосов
/ 08 января 2010

Возможно ли с Postgresql создать базу данных, в которой есть 2 пользователя, которые действуют как владельцы базы данных?

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

Ответы [ 2 ]

12 голосов
/ 08 января 2010

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

Возможно, вы захотите взглянуть на http://blog.hagander.net/archives/70-Faking-the-dbo-role.html,, чтобы найти способ подделать нечто похожее на то, что вы просите. Это не идеально, но может быть достаточно для вас. Он должен быть в состоянии решить проблему владения объектом хотя бы.

6 голосов
/ 08 января 2010

Ах, нашел его: Документы PostgreSQL: Глава 20. Роли и привилегии базы данных

"Роли-члены, имеющие атрибут INHERIT, автоматически используют привилегии ролей, членами которых они являются."

CREATE ROLE joe LOGIN INHERIT;
CREATE ROLE admin NOINHERIT;
GRANT admin TO joe;

"Сразу после подключения в качестве роли joe сеанс базы данных будет использовать привилегии, предоставленные непосредственно joe, плюс любые привилегии, предоставленные администратору, поскольку joe" наследует "привилегии администратора."

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