Как войти в систему и пройти аутентификацию в Postgresql после новой установки?

postgresql authentication passwords ident

95307 просмотра

6 ответа

Сделал новую установку Postgres 8.4 на Mint Ubuntu. Как мне создать пользователя для postgres и войти в систему с помощью psql?

Когда я набираю psql, он просто говорит мне

psql: FATAL: Ident authentication failed for user "my-ubuntu-username"
Автор: user61734 Источник Размещён: 12.11.2019 09:49

Ответы (6)


102 плюса

Решение

Есть два метода, которые вы можете использовать. Оба требуют создания пользователя и базы данных.

По умолчанию psql подключается к базе данных с тем же именем, что и пользователь. Таким образом, существует соглашение, чтобы сделать это «базой данных пользователя» . И нет никаких причин нарушать это соглашение, если вашему пользователю нужна только одна база данных. Мы будем использовать mydatabaseв качестве примера имя базы данных.

  1. Используя createuser и createb , мы можем явно указать имя базы данных,

    $ sudo -u postgres createuser -s $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    

    Вероятно, вам следует полностью опустить это и разрешить вместо всех команд указывать имя пользователя по умолчанию.

    $ sudo -u postgres createuser -s $USER
    $ createdb
    $ psql
    
  2. Использование команд администрирования 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пользователя.

  1. Обычно он заблокирован от ОС. Никто не должен «входить» в операционную систему как postgres. Вы должны иметь root для аутентификации как postgres.
  2. Обычно он не защищен паролем и делегируется операционной системе хоста. Это хорошая вещь . Обычно это означает, что для входа в систему, postgresкоторая является эквивалентом PostgreSQL SQL Server SA, необходимо иметь доступ на запись к базовым файлам данных. И это означает, что вы все равно можете разрушить хаос.
  3. Если этот параметр отключен, вы устраняете риск атаки методом грубой силы через именованного суперпользователя. Сокрытие и скрытие имени суперпользователя имеет свои преимущества.
Автор: Evan Carroll Размещён: 31.01.2010 05:24

36 плюса

по умолчанию вам нужно использовать пользователя postgres:

sudo -u postgres psql postgres
Автор: user262976 Размещён: 31.01.2010 05:25

16 плюса

Ошибка, которую вы получаете, заключается в том, что your-ubuntu-username не является действительным пользователем Postgres.

Вы должны указать psql, какое имя пользователя базы данных использовать

psql -U postgres

Вам также может понадобиться указать базу данных для подключения к

psql -U postgres -d <dbname>
Автор: cope360 Размещён: 31.01.2010 05:40

5 плюса

Вы также можете подключиться к базе данных как «обычный» пользователь (не 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"
Автор: Dutch Glory Размещён: 26.07.2014 08:40

3 плюса

Если ваш клиент базы данных соединяется с TCP / IP, и в вашем файле pg_hba.conf настроена аутентификация идентификатора, проверьте, что у вас установлен и работает идент. Это обязательно, даже если у вас есть только локальные клиенты, подключающиеся к «localhost».

Также имейте в виду, что в настоящее время для идентификации можно использовать IPv6, чтобы Postgresql мог принимать клиентов, подключающихся к локальному хосту.

Автор: toka Размещён: 08.04.2011 12:31

0 плюса

Основное различие между входом в систему с использованием пользователя 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

Источник

Автор: CORONEL Braian Размещён: 19.10.2019 05:03
Вопросы из категории :
32x32