Как я могу войти в систему и проверить подлинность Postgresql после новой установки?

Была ли установлена ​​новая версия postgres 8.4 на mint ubuntu. Как создать пользователя для postgres и входа с помощью psql?

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

psql: FATAL: Ident authentication failed for user "my-ubuntu-username"

Ответ 1

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

По умолчанию 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. Если этот параметр отключен, вы устраняете риск атаки методом грубой силы через именованного суперпользователя. Сокрытие и скрытие имени суперпользователя имеет свои преимущества.

Ответ 2

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

sudo -u postgres psql postgres

Ответ 3

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

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

psql -U postgres

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

psql -U postgres -d <dbname>

Ответ 4

вы также можете подключиться к базе данных как "обычный" пользователь (а не 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"

Ответ 5

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

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

Ответ 6

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

Источник