Отправляет email-рассылки с помощью сервиса Sendsay

Вопросы по postgresql.

Не могу зайти на сервер под новым пользователем:
psql -U smk
psql: FATAL: database "smk" does not exist

Если зайти в ОС под пользователем postgres:
psql -U smk
psql: FATAL: Ident authentication failed for user "smk"

Создавал польз.а так:
postgres=# create user smk;
alter role smk with password 'pass';

Как быть? И ещё вопросы:
1. Аналог mysql 'use database' в postgresql.
2. Как закодировать пароль в md5?

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 27855; Возраст листа: 1140; Участников: 1705
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/587837

Ответить   Strong Thu, 7 Sep 2006 12:50:47 +0700 (#587837)

 

Ответы:

Hi !

Это объясняется тем, что БД, к которой осуществляется коннект, по умолчанию
имеет название <имя юзера>, в твоем случае надо делать
psql -U smk <твоя БД> .

Ответить   Thu, 7 Sep 2006 13:32:05 +0400 (#587859)

 

В сообщении от 1157622647 секунд после начала Эпохи Strong написал(а):

Базы данных smk не существует.

По умолчанию используется метод авторизации ident. Это означает что имя
пользователя определяется операционной системой. По умолчанию входить
можно только с локальной машины и только под тем пользователем, от
которого запущен shell, и подключатся только к БД у которой название
совпадает с именем пользователя.

Нужны другие настройки? Тогда вам сюда
http://www.postgresql.org/docs/8.1/static/client-authentication.html

\c dbname

Если использовать метод авторизации md5, то все новые пароли, созданные
посредством команд CREATE ROLE или ALTER ROLE будут зашифрованы по MD5,
если только не указано слово ENCRYPTED в этих командах.

P.S. В руководстве подробно обо всем этом описано.

Ответить   Konstantin Korikov Thu, 7 Sep 2006 15:11:34 +0300 (#587899)

 

В сообщении от 7 сентября 2006 09:50 Strong написал(a):

Либо создайте ему его базу данных, либо входите в другую
существующую:

psql -U smk template1

Настройте авторизацию так как вам надо (в файле pg_hba.conf)
При авторизации с ident вы входите без пароля, но только под
своим именем.

имя базы данных указывается в явном виде при подключении. По
умолчанию оно совпадает с именем юзера. В psql используется
псевдо-команда \c

grub-md5-crypt

Только эта утилита от совсем другого пакета.

Ответить   "Sergey B. Khvatov" Thu, 7 Sep 2006 17:46:47 +0400 (#587915)

 

On Thu, 7 Sep 2006 17:46:47 +0400 "Sergey B. Khvatov"
<xbat***@t*****.ru> wrote:

Как так? Это ведь разные польз.ы!

Так как запрос выглядит? Или просто закодировать этим и подставить как
пароль в запрос? Но тогда и придётся его вводить при соединении! Или я
не прав? Я так думал что закодированный хранится в БД, а я "вхожу" по
незакодированному.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 27860; Возраст листа: 1140; Участников: 1705
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/587975

Ответить   Strong Fri, 8 Sep 2006 00:34:43 +0700 (#587975)

 

В сообщении от 1157664883 секунд после начала Эпохи Strong написал(а):

А так что имя пользователя после ключа -U должно совпадать с именем
пользователя Unix, от которого Вы выполняете psql. Иначе ident Вас не
пустит. А если ключ -U не указан, то считается что это пользователь от
которого Вы выполняете psql.

ALTER ROLE smk WITH PASSWORD 'тут_пароль';

Зашифрованный (закодированный - это неправильный термин) пароль
будет храниться в БД когда сервер будет настроен на метод авторизации
md5. А с ident'ом, как у Вас сейчас, пароли вообще не нужны и они
игнорируются.

Ответить   Konstantin Korikov Fri, 8 Sep 2006 00:01:08 +0300 (#588031)

 

В сообщении от 7 сентября 2006 21:34 Strong написал(a):

метод авторизации trust + ident как раз позволяет войти без
дополнительной авторизации, но только бод своим именем.
Надежно работает только для локальных соединений. Так что
рекомендую менять на md5

Он у вас есть? Тогда запустите его без параметров - он все
что надо спросит.

Если нет - то используйте perl:

perl -e 'print crypt ("name", "\$1\$salt\$"), "\n"'

name - это фраза которую надо закриптовать.
salt - произвольная последовательность случайных латинских
букв и цифр. Длина произвольная, примерно 5...8 символов.

Все что он скажет - используйте как пароль. Если вы
запустите предложенную строчку как есть, то результат будет
$1$salt$zSVs3lmMaFcsmC5Myvj/i/

Ответить   "Sergey B. Khvatov" Fri, 8 Sep 2006 14:59:11 +0400 (#588231)

 

В сообщении от 1157716751 секунд после начала Эпохи Sergey B. Khvatov написал(а):

Это не MD5, а DES шифрование.

Ответить   Konstantin Korikov Fri, 8 Sep 2006 16:03:34 +0300 (#588272)

 

В сообщении от 8 сентября 2006 17:03 Konstantin Korikov
написал(a):

B. Khvatov написал(а):

если salt начинается с $1$ то таки md5

Ответить   "Sergey B. Khvatov" Fri, 8 Sep 2006 17:21:32 +0400 (#588281)

 

В сообщении от 1157725292 секунд после начала Эпохи Sergey B. Khvatov написал(а):

Но только не в контексте PostgreSQL.

postgres=# select rolpassword from pg_authid;
rolpassword
md53175bce1d3201d16594cebf9d7eb3f9d
md55ee5a9db012636e1d34eef192100b269
md565fa2bd61141100cdd8308cb30907b2a
md55ee5a9db012636e1d34eef192100b269
(записей: 4)

Ответить   Konstantin Korikov Fri, 8 Sep 2006 17:11:23 +0300 (#588306)

 

В сообщении от 1157725292 секунд после начала Эпохи Sergey B. Khvatov написал(а):

PostgreSQL шифрует пароли по такому алгоритму:

$ read -p username: u; read -p password: p; \
echo -n "$p$u" |md5sum - |sed s/^/md5/

Ответить   Konstantin Korikov Fri, 8 Sep 2006 18:01:44 +0300 (#588322)

 

В сообщении от 1157716751 секунд после начала Эпохи Sergey B. Khvatov написал(а):

Что значит trust + ident ? У Вас используются оба метода одновременно
для одного и того же типа соединения?

Это утверждение не верно. trust позволяет войти без пароля независимо
от имени пользователя. ident позволяет войти без пароля, но имя
пользователя определяет ОС.

Ответить   Konstantin Korikov Fri, 8 Sep 2006 18:22:06 +0300 (#588326)