Что такое имя пользователя /пароль суперпользователя по умолчанию для postgres после новой установки?

Я только что установил postgres 8.4 на Ubuntu 9.10, и он никогда не просил меня создавать суперпользователя. Есть ли суперпользователь по умолчанию и его пароль? Если нет, как мне создать новый?

334 голоса | спросил Thierry Lam 6 FebruaryEurope/MoscowbSat, 06 Feb 2010 07:54:20 +0300000000amSat, 06 Feb 2010 07:54:20 +030010 2010, 07:54:20

5 ответов


472

ПРЕДОСТЕРЕЖЕНИЕ Ответ на изменение пароля UNIX для «postgres» через «$ sudo passwd postgres» не является предпочтительным и даже может быть ОПАСНЫМ !

Вот почему: По умолчанию учетная запись «postgres» в UNIX заблокирована, а значит, она не может быть зарегистрирована с использованием пароля. Если вы используете «sudo passwd postgres», учетная запись немедленно разблокируется. Хуже того, если вы установите пароль на что-то слабое, например «postgres», тогда вы подвергаетесь большой опасности для безопасности. Например, существует несколько ботов, пытающихся использовать имя пользователя /пароль «postgres /postgres» для входа в вашу систему UNIX.

Что вы должны сделать, следуйте за ответом Криса Джеймса :

sudo -u postgres psql postgres

# \password postgres

Enter new password: 

Объяснить это немного. Обычно для входа на сервер PostgreSQL обычно используются два способа по умолчанию:

  1. Запустив команду «psql» как пользователь UNIX (так называемая идентификация IDENT /PEER), например: sudo -u postgres psql. Обратите внимание, что sudo -u НЕ разблокирует пользователя UNIX.

  2. по TCP /IP-соединению, используя собственное управляемое имя пользователя /пароль PostgreSQL (так называемая аутентификация TCP) (т. е. НЕ пароль UNIX).

Итак, вы never хотите установить пароль для учетной записи UNIX «postgres». Оставьте его заблокированным по умолчанию.

Конечно, все может измениться, если вы настроите его иначе, чем значение по умолчанию. Например, можно синхронизировать пароль PostgreSQL с паролем UNIX и разрешать только локальные логины. Это выходит за рамки этого вопроса.

ответил user716468 28 +04002011-10-28T10:25:11+04:00312011bEurope/MoscowFri, 28 Oct 2011 10:25:11 +0400 2011, 10:25:11
153

Введите в командной строке:

$ sudo -u postgres psql postgres
postgres=# \password postgres

Вы увидите:

Enter new password: 
Enter it again:
ответил Chris James 16 MarpmWed, 16 Mar 2011 18:39:09 +03002011-03-16T18:39:09+03:0006 2011, 18:39:09
57

Вы управляете postgres через пользовательский postgres, так:

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
ответил David Mackintosh 6 FebruaryEurope/MoscowbSat, 06 Feb 2010 08:02:50 +0300000000amSat, 06 Feb 2010 08:02:50 +030010 2010, 08:02:50
19

В Windows сделайте следующее (ВАЖНО: используйте учетную запись администратора Windows ):

  1. После установки откройте <PostgreSQL PATH>\data\pg_hba.conf.

  2. Измените эти две строки и измените «md5» на «trust»:

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. Перезапустите службу PostgreSQL (возможно, не обязательно).

  4. (необязательно) Откройте командную строку и измените кодовую страницу на 1252:

    cmd.exe /c chcp 1252

  5. Войдите в PostgreSQL. Не требуется пароль (обратите внимание на параметр верхнего регистра -U):

    psql -U postgres

  6. (Необязательно, рекомендуется по соображениям безопасности) Измените пароль пользователя postgres:

    \password postgres

    и измените «trust» на «md5» в pg_hba.conf.

ответил M.S. Dousti 18 22014vEurope/Moscow11bEurope/MoscowTue, 18 Nov 2014 22:25:16 +0300 2014, 22:25:16
4

Если вы пытаетесь получить доступ к оболочке PostgreSQL, вы можете ввести:

psql -U postgres my_database

Где my_database - ваше имя базы данных.

ответил Marcio Mazzucato 7 MarpmFri, 07 Mar 2014 17:44:18 +04002014-03-07T17:44:18+04:0005 2014, 17:44:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132