【发布时间】:2013-02-16 14:56:59
【问题描述】:
我为我的 Postgres 数据库创建了一个用户,但我无法使用我设置的用户访问数据。
在 python shell 中,我运行了以下代码:
>>> import psycopg2
>>> conn=psycopg2.connect(
database="db",
user="postgres",
host="/tmp/",
password="opensesame"
)
>>> cur = conn.cursor()
>>> state = 'Arkansas'
>>> cur.execute("SELECT city FROM table WHERE state = %s", (state,))
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
cur.execute("SELECT city FROM table WHERE state = %s", (state,))
ProgrammingError: permission denied for relation table
作为超级用户,我试过了:
db=# ALTER USER postgres SET TO default
但这并没有帮助
我需要让这个用户访问这个表,任何帮助将不胜感激。感谢您的观看。
【问题讨论】:
-
我相信你的主机应该是一个 ip 或主机名
-
你为openseaseme数据库设置了Postgres的用户权限吗?您必须明确授予它权限。
-
@Guy 不,我没有。我是一个 postgres 菜鸟。如果您发布有关如何执行此操作的链接,或者告诉我它在文档中的位置,我将排除该答案(如果它有效)。或者你可以是亲爱的,告诉我这个命令作为这个问题的答案。
标签: python postgresql psycopg