Как правильно создать нужного пользователя для подключения к базе данных 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, то база будет выбрана по логину.