Використовуйте користувача операційної системи postgres
для створення вашої бази даних, доки ви не встановили роль бази даних з необхідними привілеями, що відповідає однойменному користувачеві вашої операційної системи ( h9uest
у вашому випадку):
sudo -u postgres -i
Як рекомендовано тут або тут .
Потім спробуйте ще раз. Введіть, exit
коли буде виконано операцію як користувач системи postgres
.
Або виконайте одиночну команду, createuser
як postgres
з sudo
, як це демонструє дрейс в іншій відповіді.
Сенс полягає в тому, щоб використовувати користувача операційної системи, що відповідає одній імені з базою даних, щоб отримати доступ через ident
аутентифікацію . postgres
є користувачем операційної системи за замовчуванням для ініціалізації кластера баз даних. Посібник:
Для завантаження системи бази даних, щойно ініціалізована система завжди містить одну заздалегідь задану роль. Ця роль завжди є «суперпользователем», і за замовчуванням (якщо не буде змінено під час запуску initdb
) вона матиме те саме ім’я, що і користувач операційної системи, який ініціалізував кластер бази даних. Зазвичай ця роль буде названа postgres
. Для того, щоб створити більше ролей, спочатку потрібно з’єднатись як цю початкову роль.
Я чув про незвичайні установки з нестандартними іменами користувачів або там, де користувач операційної системи не існує. Вам потрібно буде там адаптувати свою стратегію.
Про ролі бази даних та автентифікацію клієнта читайте в посібнику.
FATAL: role "user" is not permitted to log in
, перевірте для цього dba.stackexchange.com/questions/57723/… .