Ошибка PostgreSQL: FATAL role does not exist — как создать пользователя для 1С
- При создании новой базы через консоль 1С появляется сообщение:
FATAL: role "1C_Admin" does not existилиrole "postgres" does not exist. - Сервер 1С не может авторизоваться в PostgreSQL для создания таблиц.
- Служба PostgreSQL установлена с нуля, но учетные записи для 1С еще не настроены.
Что означает эта ошибка простыми словами
В терминах PostgreSQL пользователь называется Ролью (Role). Если вы в мастере создания базы 1С указали имя пользователя базы данных (например, 1C_Admin или postgres), а в самой СУБД такой логин еще не был создан, PostgreSQL отвергает подключение с ошибкой «роль не существует».
Шаг 1. Вход в консоль PostgreSQL под системной учетной записью
# В Linux переключитесь на системного пользователя postgres:
su - postgres
# Запустите командную строку SQL:
psqlШаг 2. Создание нужного пользователя с правами суперпользователя
В терминале psql выполните следующую команду SQL (замените логин и пароль на свои):
CREATE ROLE "1C_Admin" WITH SUPERUSER LOGIN PASSWORD 'ВашНадежныйПароль';Шаг 3. Если нужно изменить пароль уже существующего пользователя postgres
ALTER ROLE postgres WITH PASSWORD 'НовыйПароль';Шаг 4. Проверка списка созданных ролей
\duВ таблице появится ваша роль 1C_Admin с атрибутом Superuser, Create DB. Введите \q для выхода.
Частые вопросы (FAQ)
Обязательно ли давать пользователю 1С права SUPERUSER?
Для учетной записи, под которой сервер 1С создает и администрирует базы данных, права SUPERUSER обязательны, так как 1С создает внутренние расширения (например, plpgsql, mchar) и управляет сессиями.
Имеет ли значение регистр букв в имени роли?
Да! Если имя роли содержит заглавные буквы (например, 1C_Admin), в командах SQL его обязательно нужно оборачивать в двойные кавычки: CREATE ROLE "1C_Admin".
Как создать пользователя PostgreSQL в Windows без командной строки?
Откройте графическую утилиту pgAdmin, подключитесь к серверу, раскройте ветку 'Login/Group Roles', нажмите 'Create -> Login/Group Role' и укажите имя, пароль и права Superuser.
Что делать, если при попытке выполнить psql пишет 'Access denied'?
В файле pg_hba.conf временно смените метод авторизации для локальных подключений (local all postgres) с md5 на trust, создайте пользователя, после чего верните md5 обратно.