1

Я только что установил PostgreSQL 9.6 на Windows 7. Мне пришлось выбрать пароль для пользователя по умолчанию "postgres" во время процесса установки.

Запустив pgAdmin4 после установки, я набрал свой пароль для "postgres", и он был сохранен, как и ожидалось.

Но в командной строке пользователь по умолчанию выглядит не как "postgres", а как мое имя пользователя сеанса Windows, для которого у меня нет пароля PostgreSQL (мой пароль Windows там не работает). Я могу войти с помощью psql -U postgres , но как я могу изменить пользователя по умолчанию на postgres?

2 ответа2

3

Переменная среды PGUSER учитывается, если не задана опция -U .

Таким образом, вы можете использовать командный файл по существу:

set PGUSER=postgres
psql

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

На самом деле существует довольно много других переменных, соответствующих другим свойствам соединения, которые могут быть установлены аналогично (полный список см. В разделе Переменные среды в документации PostgreSQL).

Эти переменные являются функцией libpq , библиотеки DLL, реализующей взаимодействие клиент-сервер для большинства приложений PostgreSQL, поэтому они будут работать не только для psql но и для всех этих приложений.

0

Как я могу изменить пользователя по умолчанию [запущенного из командной оболочки] на postgres?

Я не думаю, что это возможно.

Однако вы можете запустить psql от имени другого пользователя с помощью команды runas .

Должно работать что-то вроде следующего:

Runas /profile /user:postgres psql

runas

Запустите программу под другой учетной записью пользователя (без повышенных прав).

Syntax
      RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
         /user:UserName program

      RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
         /smartcard [/user:UserName] program

      Display the trust levels that can be used:
      RUNAS /showtrustlevels

      Run a program at a given TrustLevel:
      RUNAS /trustlevel:TrustLevel program

Key
   /noprofile       Do not load the user's profile.
                    This causes the application to load more quickly, but
                    can cause some applications to malfunction.

   /profile         Load the user's profile. (default)

   /env             Use the current environment instead of user's.

   /netonly         Use the credentials for remote access only.

   /savecred        Use credentials previously saved by the user.
                    This option is not available on Windows 7 Home or
                    Starter Editions and will be ignored.

   /smartcard       Load the credentials from a smartcard.

   /user            UserName in the form USER@DOMAIN or DOMAIN\USER

   /trustlevel Level  One of levels enumerated in /showtrustlevels.
                      RunAs is not able to launch an application with an elevated
                      access token.

   program          The program to run.

Исходные руны


Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .