我正在尝试使用Python为PostgreSQL数据库用户更新用户凭证。我尝试引用以下线程,但不幸的是,这似乎无法解决我的问题:
How to change password of a newly created user using variable in postgresql 9.5 SP
这是我的代码:
con = p.connect(database="mydB", user="abc", password="testing", host="127.0.0.1", port="5432")
cur = con.cursor()
uid = "adi"
pwd = "test6"
statement = statement = '''CREATE or REPLACE FUNCTION add_user ({}, {}) RETURNS void AS $$ EXECUTE ALTER USER ' || $1 || ' WITH PASSWORD || $2||'''.format(uid,pwd)
cur.execute( statement)
cur.execute('''COMMIT''')
我收到以下错误:ProgrammingError:“'adi'”或附近的语法错误
请帮助或推荐我使用更好的解决方案。预先谢谢大家!
我能够成功解决此问题。
import psycopg2 as p
con = p.connect(database="mydB", user="adi", password="xxxx", host="127.0.0.1", port="5432")
cur = con.cursor()
uid = "adi"
pwd = "test"
statement = '''ALTER USER {} WITH PASSWORD %s '''.format(uid)
cur.execute(statement, [pwd])
cur.execute('''COMMIT''')
尝试在实际语句中提供用户名和密码,然后尝试执行。
首先尝试删除ALTER USER
之前的多余引号,然后执行。如果不起作用,请尝试以下方法:
statement = '''CREATE or REPLACE FUNCTION add_user ({}, {}) RETURNS void AS $$ EXECUTE 'ALTER USER ' || $1 || ' WITH PASSWORD || $2||'''.format(uid,pwd)
cur.execute(statement)