无法使用psycopg2更改用户密码

时间:2016-06-28 19:36:57

标签: python-2.7 psycopg2

使用psycopg2更新用户密码似乎运行成功,但密码保持不变。

以下是我使用的代码:

conn = psycopg2.connect("dbname='my_db' user='my_user' host='localhost' password='dbpass'")

cur = conn.cursor()

update_password_query = """ALTER USER my_user WITH PASSWORD %(password)s"""
cur.execute(update_password_query, {"password": new_password})

execute语句返回None,这是成功查询所需的。

1 个答案:

答案 0 :(得分:0)

看起来我需要做一个

conn.commit()

执行后,让更改坚持下去。

来自文档http://initd.org/psycopg/docs/connection.html

  

提交()   将任何挂起的事务提交到数据库。

     

默认情况下,Psycopg在执行第一个命令之前打开一个事务:如果没有调用commit(),任何数据操作的效果都将丢失。

     

连接也可以在“自动提交”模式下设置:没有事务自动打开,命令立即生效。

另见Use python to execute line in postgresql