Помилка аутентифікації для користувача з усіма привілеями в Postgres 9.5


14

Я хочу створити користувача, який має лише доступ до визначеної бази даних. Однак він повинен мати весь дозвіл. Я використовую Postgresql 9.5 на Ubuntu 14.04. Отже, перш за все, я створюю нового користувача:

$createuser --interactive joe
  Shall the new role be a superuser? (y/n) n
  Shall the new role be allowed to create databases? (y/n) n
  Shall the new role be allowed to create more new roles? (y/n) n

Далі я створюю нову базу даних з власником Джо:

 $sudo -u postgres psql 
 $CREATE DATABASE myDB OWNER joe;
 $GRANT ALL ON DATABASE myDB TO joe;

Після цього я намагаюся з'єднатися з користувачем Джо, щоб підключити до моєї бази даних myDB:

$psql myDB -U joe
psql: FATAL:  Peer authentication failed for user "joe" 

Що мені робити далі?


4
Це не тематика. адже налаштування програмного забезпечення в Ubuntu є темою
Anwar

Чи вирішена ваша проблема?
Анвар

Відповіді:


16
  1. Відкрити /etc/postgresql/9.5/main/pg_hba.confз кореневим доступом

     sudo nano /etc/postgresql/9.5/main/pg_hba.conf
    
  2. Зміна peerв md5цих рядках.

    Перед зміною

    # "local" is for Unix domain socket connections only
    local   all             all                                     peer
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            peer
    # IPv6 local connections:
    host    all             all             ::1/128                 peer
    

    Після вашої зміни

    # "local" is for Unix domain socket connections only
    local   all             all                                     md5
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    host    all             all             ::1/128                 md5
    
  3. Збережіть файл, натиснувши Ctrl- O. Вийдіть з нано за допомогою Ctrl-X

  4. Перезапустіть postgresql, використовуючи

    sudo service postgresql restart
    

1
дякую, мені довелося змінити локальний аналог на md5, після цього я міг успішно увійти.
Qeychon

Оновлення для будь-якої версії :, щоб перевірити файл конф:sudo -u postgres psql -c "SHOW config_file"
Пітер Краусс

Мої показували ідентичність замість однолітків host all all 127.0.0.1/32 ident,host all all ::1/128 ident
Джозеф К.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.