Как правильно создать нужного пользователя для подключения к базе данных Postgresql?

В качестве теста запустил образ и создал в нем базу данных shop. Далее выполняю такой набор команд:

Создаю нужного мне пользователя

postgres=# create user user1 with superuser password '123456';
CREATE ROLE

Даю ему все права на работу с базой:

postgres=# GRANT ALL ON DATABASE shop to user1;
GRANT

В итоге получаю такую ошибку:

docker exec -ti otuspg psql -U user1
psql: error: could not connect to server: FATAL:  database "user1" does not exist

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


Ответы (2 шт):

Автор решения: lleballex
CREATE USER username WITH PASSWORD 'password';
GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

Пользователь создан, права выданы. А дальше у тебя ошибка: database "user1" does not exist, что значит, что БД с именем 'user1' не существует. А почему? Потому что это имя пользователя

→ Ссылка
Автор решения: Василий Никпуп

Необходимо воспользоваться такой командой:

docker exec -ti otuspg psql -U user1 -d shop

Дело в том, что если не указать параметр -d, то база будет выбрана по логину.

→ Ссылка