/ / Psycopg2-Peer-Authentifizierung für Benutzerpostgress - Python, Postgresql, Psycopg2, Ubuntu-16.04

Psycopg2 Peer-Authentifizierung für Benutzer postgress - Python, PostgreSQL, Psycopg2, Ubuntu-16.04

Ich habe anscheinend PostgreSQL 9.5.5 korrekt installiert. und Psycopg2 auf Ubuntu 16.04, und können sich anmelden über:

sudo -u postgres psql

Wenn ich dann ausstelle conninfoIch bekomme Folgendes:

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

Sicherlich sollte ich mich über psycopg2 auf die gleiche Weise wie gezeigt verbinden können Hier, aber das Skript:

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

gibt mir:

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

Ich möchte PostgreSQL nur für den persönlichen Gebrauch, daher möchte ich die TCP-Authentifizierung nicht aktivieren.

Wie verwende ich die Peer-Authentifizierung mit dem Benutzer "postgress" in Psycopg2 richtig?

Antworten:

8 für die Antwort № 1

Bei der Peer-Authentifizierung wird der Postgres-Benutzername in Ihrer Verbindungszeichenfolge mit dem Namen des Linux-Benutzers verglichen, der das Skript ausführt.

Versuchen Sie, Ihr Python-Skript mit auszuführen sudo -u postgres.


4 für die Antwort № 2

Sie müssen den Host bereitstellen

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

1 für die Antwort № 3

So sollte Ihr Anruf aussehen.

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

conn.close()