Пользователь Postgresql с определенными привилегиями

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

По сути, этот пользователь будет использоваться для доступа к базе данных для приложения, которое хранит, обновляет и извлекает данные, и пользователь может создать базу данных.


person dutchlab    schedule 05.04.2014    source источник
comment
Когда вы говорите создать базу данных, я предполагаю, что вы также имеете в виду создание таблиц и схем в этой базе данных, создание индексов для таблиц и т. д.?   -  person Craig Ringer    schedule 06.04.2014
comment
Ваш вопрос очень неоднозначен и создает впечатление, что вы запутались в понятиях и терминах баз данных. Не могли бы вы перефразировать в терминах приложения, что нужно сделать этому пользователю?   -  person Patrick    schedule 06.04.2014
comment
У меня есть экземпляр Postgresql. В этом случае несколько баз данных. Я хочу иметь пользователя, который не является суперпользователем, но может выбирать, вставлять, обновлять, удалять во всех таблицах во всех базах данных, включая любые новые базы данных, которые могут быть созданы. Я хотел бы, чтобы пользователь мог создавать базу данных, но не удалять ее. Я также не хочу, чтобы пользователь мог создать роль. Извините за путаницу. Я новичок в Postgresql, и в MySQL вы можете использовать флажки в phpmyadmin, чтобы выбрать нужные привилегии, а затем выбрать базы данных. В phppgadmin привилегии не выбираются индивидуально.   -  person dutchlab    schedule 07.04.2014


Ответы (1)


Вы создаете пользователя и делаете его владельцем базы данных:

Следующее должно быть сделано как суперпользователь:

create user arthur password 'verysecret';
create database arthur_db owner = arthur;

Теперь Артур может делать что угодно в этой базе данных.

person a_horse_with_no_name    schedule 20.02.2018