не позволяя командам postgresql постоянно запрашивать пароль пользователя - PullRequest
5 голосов
/ 12 марта 2011

Странно, но я искал этот источник конфигурации, но не смог его найти.

Сейчас я использую opensuse 11.3 с postgresql 9.

В каждой командной строке postgresql, которую я выдаю, будет запрашиваться пароль текущего пользователя, например psql, creationb, dropdb, и мне нужно будет ввести пароль текущего пользователя (который является postgres), чтобы он работал.

Выполнение dropdb xxx && createdb xxx спросит пароль дважды.

Пожалуйста, покажи мне свет!

Спасибо: -)


EDIT

На самом деле, я уже запущен как пользователь postgres (пользователь в моем linux), поэтому я могу psql без указания пароля для базы данных, но мне все равно нужно предоставить пароль для системных пользователей postgres.

Так что, если в базе данных есть пользователь dbuser и я запускаю psql в качестве postgres (пользователь linux), будет задан пароль для пользователя linux (postgres), а не пароль dbuser.

Ответы [ 3 ]

8 голосов
/ 12 марта 2011

Вы можете создать файл ~/.pgpass (%APPDATA%\postgresql\pgpass.conf в Windows) со строкой в ​​следующем формате:

hostname:port:database:username:password

Подробнее см. в документации .

3 голосов
/ 12 марта 2011

Если вы используете opensuse, вы сможете создать файл .pgpass, выполнив:

echo "hostname:port:database:username:password" > ~/.pgpass
chmod 0600 ~/.pgpass

Со всей правильной информацией, конечно.

2 голосов
/ 13 января 2012

, если у вас есть файл .pgpass, позволяющий определенному пользователю получить доступ к определенной базе данных (назовем это «myprojectdb»), помните, что creatdb и dropdb на самом деле не действуют на «myprojectdb», несмотря натот факт, что вы можете попросить их создать и удалить эту базу данных.

Скорее всего, вы захотите добавить внутренние таблицы postgres к вашим pgpass разрешениям (postgres / templates).Также не забудьте добавить параметр --no-password в createdb и dropdb, чтобы игнорировать интерактивные приглашения (обратите внимание, что это будет работать, только если пользователь, указанный в параметре -U, может изменять внутренние таблицы postgres)

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