[英]Update PostgreSQL user credentials using variables in Python
我正在嘗試使用 Python 更新 PostgreSQL db 用戶的用戶憑據。我嘗試參考以下線程,但不幸的是,這似乎無法解決我的問題:
如何在 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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.