Я только что установил Postgres 8.4 на Ubuntu 9.10, и он никогда не просил меня создать суперпользователя. Есть ли суперпользователь по умолчанию и его пароль? Если нет, то как мне создать новый?
postgresql
user-management
Тьерри Лам
источник
источник
Ответы:
ВНИМАНИЕ! Ответ об изменении пароля UNIX для «postgres» через «$ sudo passwd postgres» не является предпочтительным и даже может быть ОПАСНЫМ !
Вот почему: по умолчанию учетная запись UNIX «postgres» заблокирована, что означает, что ее нельзя войти в систему с помощью пароля. Если вы используете "sudo passwd postgres", учетная запись немедленно разблокируется. Хуже того, если вы устанавливаете пароль на что-то слабое, например «postgres», то вы подвергаетесь большой угрозе безопасности. Например, есть ряд ботов, пытающихся использовать комбинацию имени пользователя и пароля «postgres / postgres» для входа в систему UNIX.
Что вы должны сделать, это следовать ответу Криса Джеймса :
Чтобы объяснить это немного. Обычно есть два способа входа на сервер PostgreSQL по умолчанию:
При выполнении команды «Psql» как пользователь UNIX (так называемые IDENT / аутентификации PEER), например:
sudo -u postgres psql
. Обратите внимание, чтоsudo -u
НЕ разблокирует пользователя UNIX.по соединению TCP / IP с использованием собственного управляемого имени пользователя / пароля PostgreSQL (так называемая аутентификация TCP) (т. е. НЕ пароль UNIX).
Таким образом, вы никогда не хотите устанавливать пароль для учетной записи UNIX "postgres". Оставьте его заблокированным по умолчанию.
Конечно, все может измениться, если вы настроите его не так, как по умолчанию. Например, можно синхронизировать пароль PostgreSQL с паролем UNIX и разрешить только локальный вход. Это было бы за рамками этого вопроса.
источник
/etc/shadow
где хранится пароль @lzap.Введите в командной строке:
Вот увидишь:
источник
Вы управляете postgres через пользователя
postgres
следующим образом:источник
su
должны вводить пароль для пользователя postgres. В большинстве систем учетная запись Postgres Unix заблокирована (пароль не будет работать), что означает, что толькоsu
учетная запись root может работать с этой учетной записью.sudo
вместоsu
.sudo su - postgres
: \sudo -u postgres
.В 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
и измените «доверие» обратно на «md5» в
pg_hba.conf
.источник
Если вы пытаетесь получить доступ к оболочке PostgreSQL, вы можете набрать:
psql -U postgres my_database
Где
my_database
ваше имя базы данных.источник