Как мне войти в систему и пройти аутентификацию в Postgresql после новой установки?
Сделал новую установку Postgres 8.4 на Mint Ubuntu. Как мне создать пользователя для postgres и войти в систему с помощью psql?
Когда я набираю psql, он просто говорит мне
psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
7 ответов
Есть два метода, которые вы можете использовать. Оба требуют создания пользователя и базы данных.
Используя createuser и creatb,
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase
Использование команд администрирования SQL и соединение с паролем через TCP
$ sudo -u postgres psql postgres
И затем в оболочке PSQL
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;
Тогда вы можете войти,
$ psql -h localhost -d mydatabase -U myuser -p <port>
Если вы не знаете порт, вы всегда можете получить его, выполнив следующую команду, так как
postgres
пользователь,SHOW port;
Или же,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
Sidenote: postgres
пользователь
Я предлагаю НЕ изменять postgres
пользователь.
- Обычно он заблокирован от ОС. Никто не должен "входить" в операционную систему как
postgres
, Вы должны иметь root для аутентификации какpostgres
, - Обычно он не защищен паролем и делегируется операционной системе хоста. Это хорошая вещь. Это обычно означает для того, чтобы войти как
postgres
который является PostgreSQL эквивалентом SQL ServerSA
Вы должны иметь доступ на запись к основным файлам данных. И это означает, что вы в любом случае можете разрушить хаос. - Если этот параметр отключен, вы устраняете риск атаки методом грубой силы через именованного суперпользователя. Сокрытие и скрытие имени суперпользователя имеет свои преимущества.
По умолчанию вам нужно использовать пользователя postgres:
sudo -u postgres psql postgres
Ошибка, которую вы получаете, заключается в том, что your-ubuntu-username не является действительным пользователем Postgres.
Вы должны указать psql, какое имя пользователя базы данных использовать
psql -U postgres
Вам также может понадобиться указать базу данных для подключения к
psql -U postgres -d <dbname>
Основное различие между входом в систему с пользователем postgres или любым другим пользователем, созданным нами, заключается в том, что при использовании пользователя postgres НЕ нужно указывать хост с -h и вместо этого для другого пользователя if.
Войти с пользователем postgres
$ psql -U postgres
Создание и вход с другим пользователем
# CREATE ROLE usertest LOGIN PASSWORD 'pwtest';
# CREATE DATABASE dbtest WITH OWNER = usertest;
# SHOW port;
# \q
$ psql -h localhost -d dbtest -U usertest -p 5432
GL
Вы также можете подключиться к базе данных как "обычный" пользователь (не postgres):
postgres=# \connect opensim Opensim_Tester localhost;
Password for user Opensim_Tester:
You are now connected to database "opensim" as user "Opensim_Tester" on host "localhost" at port "5432"
Если ваш клиент базы данных соединяется с TCP/IP, и в вашем файле pg_hba.conf настроена аутентификация идентификатора, проверьте, что у вас установлен и работает идент. Это обязательно, даже если у вас есть только локальные клиенты, подключающиеся к "localhost".
Также имейте в виду, что в настоящее время для идентификации можно использовать IPv6, чтобы Postgresql мог принимать клиентов, подключающихся к локальному хосту.
С помощью этой команды ниже каждый может войти в PostgreSQL сразу после установки. * База данных по умолчанию
postgres
используется:
psql -U postgres
Вам нужно поставить пароль после выполнения команды выше :
Password for user postgres: