使用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
,这是成功查询所需的。
答案 0 :(得分:0)
看起来我需要做一个
conn.commit()
执行后,让更改坚持下去。
来自文档http://initd.org/psycopg/docs/connection.html:
提交() 将任何挂起的事务提交到数据库。
默认情况下,Psycopg在执行第一个命令之前打开一个事务:如果没有调用commit(),任何数据操作的效果都将丢失。
连接也可以在“自动提交”模式下设置:没有事务自动打开,命令立即生效。