Выполнение postgresql пользователем с правами администратора не разрешено

#windows #postgresql

#Windows #postgresql

Вопрос:

Win7. Postgres 9.3.

Каждый раз, когда я набираю «postgres» в cmd, я получаю эту ошибку.

Создал новую учетную запись без каких-либо прав администратора и с правами «Войти как» и с правильными правами доступа к каталогу postgres / data, затем я установил эту учетную запись как «Войти как» в меню служб, но я все равно получаю ту же ошибку.

update2017: я так и не нашел решения этой проблемы.

Комментарии:

1. вы когда-нибудь находили решение этой проблемы?

Ответ №1:

Для Windows сделайте это:

  1. Запустить cmd.exe (администратор, как и вы)
  2. Добавить пользователя postgres: net user postgres your_password /add
  3. Запустите cmd.exe использование вашей новой учетной записи postgres: runas /user:postgres cmd.exe
  4. Вы можете проверить правильность входа в систему, используя » whoami
  5. Запустите postgres в обычном режиме.

Комментарии:

1.Postgres следует запускать через, а pg_ctl не через postgres.exe

Ответ №2:

Из вашего вопроса неясно, пытаетесь ли вы запустить службу Postgres или «вручную» запустить Postgres без регистрации службы Windows.

Поскольку 9.x Postgres не требует собственной учетной записи пользователя Windows для запуска службы. По умолчанию используется встроенная учетная запись «Network».

Чтобы запустить службу Postgres (если она установлена правильно), просто используйте use

 net start postgresql-9.3
 

(фактическое имя может отличаться)

Если вы не зарегистрировали службу Windows, вам следует запускать Postgres через pg_ctl.exe , а не через postgres.exe . pg_ctl.exe при запуске сервера все административные привилегии процесса будут удалены.

Чтобы запустить Postgres вручную из командной строки, используйте:

 pg_ctl -w -D c:PathToTheDataDirectory
 

предполагается, что права доступа к каталогу данных настроены правильно, так что текущий пользователь имеет полный доступ к каталогу.

Если вы хотите установить / создать службу Windows вручную, вы также можете сделать это с помощью pg_ctl программы:

 pg_ctl register -N "postgresql-9.3" -D c:PathToTheDataDirectory
 

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