用户postgres的Psycopg2对等身份验证

2024-09-28 17:15:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我似乎已经正确安装了PostgreSQL 9.5.5。以及Ubuntu16.04上的Psycopg2,可以通过以下方式登录:

sudo -u postgres psql

如果我随后发出\conninfo,则得到以下结果:

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

当然,我应该能够通过psycopg2以如here所示的方式进行连接,但是脚本:

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

给我:

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

我只想让PostgreSQL用于个人用途,所以我不想启用TCP身份验证。

在Psycopg2中,如何正确地对用户“postgres”使用对等身份验证?


Tags: to身份验证youpostgresql方式sudopostgresconn
3条回答

你需要提供主机

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

对等身份验证的工作方式是将连接字符串中的Postgres用户名与运行脚本的Linux用户的名称进行比较。

尝试使用sudo -u postgres运行Python脚本。

这就是你打电话的样子。

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

conn.close()

相关问题 更多 >