Что такое имя пользователя /пароль суперпользователя по умолчанию для postgres после новой установки?
Я только что установил postgres 8.4 на Ubuntu 9.10, и он никогда не просил меня создавать суперпользователя. Есть ли суперпользователь по умолчанию и его пароль? Если нет, как мне создать новый?
5 ответов
ПРЕДОСТЕРЕЖЕНИЕ Ответ на изменение пароля 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 обычно используются два способа по умолчанию:
-
Запустив команду «psql» как пользователь UNIX (так называемая идентификация IDENT /PEER), например:
sudo -u postgres psql
. Обратите внимание, чтоsudo -u
НЕ разблокирует пользователя UNIX. -
по TCP /IP-соединению, используя собственное управляемое имя пользователя /пароль PostgreSQL (так называемая аутентификация TCP) (т. е. НЕ пароль UNIX).
Итак, вы never хотите установить пароль для учетной записи UNIX «postgres». Оставьте его заблокированным по умолчанию.
Конечно, все может измениться, если вы настроите его иначе, чем значение по умолчанию. Например, можно синхронизировать пароль PostgreSQL с паролем UNIX и разрешать только локальные логины. Это выходит за рамки этого вопроса.
Введите в командной строке:
$ sudo -u postgres psql postgres
postgres=# \password postgres
Вы увидите:
Enter new password:
Enter it again:
Вы управляете postgres через пользовательский postgres
, так:
# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;
В Windows сделайте следующее (ВАЖНО: используйте учетную запись администратора Windows ):
-
После установки откройте
<PostgreSQL PATH>\data\pg_hba.conf
. -
Измените эти две строки и измените «md5» на «trust»:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
-
Перезапустите службу PostgreSQL (возможно, не обязательно).
-
(необязательно) Откройте командную строку и измените кодовую страницу на 1252:
cmd.exe /c chcp 1252
-
Войдите в PostgreSQL. Не требуется пароль (обратите внимание на параметр верхнего регистра -U):
psql -U postgres
-
(Необязательно, рекомендуется по соображениям безопасности) Измените пароль пользователя
postgres
:\password postgres
и измените «trust» на «md5» в
pg_hba.conf
.
Если вы пытаетесь получить доступ к оболочке PostgreSQL, вы можете ввести:
psql -U postgres my_database
Где my_database
- ваше имя базы данных.