Назад | Перейти на главную страницу

Как я могу безопасно настроить доступное соединение PostgreSQL в Windows?

Я использую PostgreSQL в Windows. У меня есть обычная установка с одной учетной записью администратора Windows, которую я использовал для установки PostgreSQL и pgAdmin III. Используя pgAdmin III, я создал базу данных, принадлежащую учетной записи postgresql.

У меня есть внешнее приложение, которому требуется доступ к базе данных. Я предоставил этому приложению имя пользователя и пароль postgresql.

Если я не подключаюсь к базе данных через pgAdmin III (в базе данных отображается красный крестик), внешнее приложение не может подключиться к базе данных. Как только я подключаюсь к базе данных через pgAdmin III, внешнее приложение может подключиться. Это проблема, потому что обе программы (PostgreSQL и приложение) работают как службы и должны иметь возможность запускаться и подключаться автоматически при перезапуске сервера (обе службы запускаются правильно при перезапуске сервера).

В отчаянии я даже сохранил пароль при подключении к базе данных через pgAdmin III, надеясь, что соединение будет сохраняться между перезагрузками, но этого не произошло.

Как настроить постоянную доступность базы данных для входа в систему с правильным именем пользователя и паролем? Желательно без сохранения пароля в виде открытого текста.

Ваша проблема звучит очень странно.

Сначала проверьте, работает ли ваш PostgreSQL. Он должен прослушивать один порт, обычно порт 5432. Для этого вы можете использовать netstat, TCPView, ProcessExplorer.

Тогда попробуйте использовать psql (он должен находиться в каталоге bin PostgreSQL), чтобы вывести список доступных баз данных с помощью -l переключатель:

[test:~]# psql -l -U postgres
                List of databases
                Name                |  Owner   | Encoding
------------------------------------+----------+----------
 postgres                           | postgres | LATIN2
 template0                          | postgres | LATIN2
 template1                          | postgres | LATIN2
 test                               | postgres | LATIN2

(используйте psql --help чтобы увидеть различные варианты)

Затем вы можете подключиться к своей базе данных с помощью:

psql -U [user] [database]

Попробуйте это, чтобы узнать, сможете ли вы подключиться к этой базе данных. Может быть, ваш PGAdmin запускает службу PostgreSQL?

Я думаю, что если у вашего внешнего приложения есть проблемы с подключением к базе данных, вы должны связаться с его создателями. Может быть, они сохраняют пароль в каком-нибудь конфигурационном файле или реестре.