Как работать с пользователями в PostgreSQL

Что такое PostgreSQL простыми словами.
Все нижеописанные операции выполняются в командной оболочке PostgreSQL. Она может быть запущена командой:
$ psql -Upostgres template1
* в данном примере, вход выполняется от учетной записи postgres к шаблонной базе template1.
Для просмотра всех пользователей СУБД:
=# select * from pg_user;
Добавление новой роли (пользователя):
=# CREATE ROLE dmosk WITH PASSWORD 'myPassword';
* в примере создана роль dmosk с паролем myPassword.
Удаление пользователя выполняется следующей командой:
=# DROP ROLE dmosk;
Права на использование базы данных
Сначала необходимо подключиться к базе, с которой хотим работать:
=# \c database1
* в примере подсоединимся к базе с названием database1.
Так мы добавим все права на использование базы database1 учетной записи dmosk:
database1=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "dmosk";
* в большинстве случаев, используется схема по умолчанию public. Но администратор может создать новую схему. Это нужно учитывать при назначении прав.
А так мы наоборот — заберем все права:
database1=# REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM "dmosk";
* обратите внимание, данный запрос отличается от предоставления прав двумя моментами: 1) вместо GRANT пишем REVOKE; 2) вместо TO "dmosk" пишем FROM "dmosk";
Настройка прав доступа к базе с помощью групп
Сначала создадим групповую роль:
=# CREATE ROLE "myRole" NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
* данной командой создана группа myRole с минимальными правами.
Теперь добавим ранее созданного пользователя dmosk в эту группу:
=# GRANT "myRole" TO dmosk;
Подключимся к базе данных, для которой хотим настроить права
=# \c database1
и предоставим все права для группы myRole всем таблицам базы database1
database1=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO GROUP "myRole";
Назначение особых прав пользователям PostgreSQL
Помимо ALL PRIVILEGES можно выдавать права на особые операции, например:
=# GRANT SELECT, UPDATE, INSERT ON ALL TABLES IN SCHEMA public TO "dmosk";
* команда позволит выдать права на получение данных, их обновление и добавление. Другие операции, например, удаление будут запрещены для пользователя dmosk.
Графический интерфейс
Иногда проще воспользоваться программой для выставления прав и работы с PostgreSQL. Могу посоветовать приложение pgAdmin. Оно позволит в оконном режиме не только создать и удалить пользователей, но и полноценно работать с СУБД.