/ / Autoryzacja równorzędna Psycopg2 dla postgressu użytkownika - python, postgresql, psycopg2, ubuntu-16.04

Uwierzytelnianie peycespg2 dla użytkownika postgress - python, postgresql, psycopg2, ubuntu-16.04

Wydaje mi się, że poprawnie zainstalowałem PostgreSQL 9.5.5. i Psycopg2 na Ubuntu 16.04 i może zalogować się przez:

sudo -u postgres psql

Jeśli wtedy wystawię conninfo, Otrzymuję następujące informacje:

You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

Z pewnością powinienem być w stanie połączyć się przez psycopg2 w taki sam sposób, jak pokazano tutaj, ale skrypt:

#!/usr/bin/python
import psycopg2
conn = psycopg2.connect("dbname=postgres user=postgres")
conn.close()

daje mi:

psycopg2.OperationalError: FATAL:  Peer authentication failed for user "postgres"

Chcę tylko PostgreSQL do użytku osobistego, więc nie chcę włączać uwierzytelniania TCP.

Jak poprawnie korzystać z uwierzytelniania równorzędnego z posterem użytkownika w Psycopg2?

Odpowiedzi:

8 dla odpowiedzi № 1

Uwierzytelnianie równorzędne działa poprzez porównanie nazwy użytkownika Postgres w ciągu połączenia z nazwą użytkownika systemu Linux, który uruchamia skrypt.

Spróbuj uruchomić skrypt Pythona za pomocą sudo -u postgres.


4 dla odpowiedzi nr 2

Musisz dostarczyć gospodarzowi

conn = psycopg2.connect("dbname="template1" user="dbuser" host="localhost" password="dbpass"")

1 dla odpowiedzi nr 3

To jest rodzaj tego, jak powinno wyglądać połączenie.

!/usr/bin/python
import psycopg2
conn = psycopg2.connect(database="postgres", user="postgres", password="postgres", port=5432)

conn.close()