【发布时间】:2021-01-05 17:09:05
【问题描述】:
我正在尝试建立一个完全只读的连接,以便用户针对我的数据库中的架构运行查询。虽然用户在 my_schema 的表中只有 SELECT 权限,但我仍然可以在游标中运行 SET {param}。它会持续存在,并且使用另一个游标的下一个查询具有新参数。
我尝试使用psycopg2.set_session(readonly=True) 无济于事。我找不到有关使用 psql 终端撤销用户此权限的信息,因此我怀疑它是特定于连接的。但是,我仍然找不到任何有关使用 psycopg2 执行此操作的信息。
import psycopg2
readonly_conn = psycopg2.connect(READONLY_DATABASE_URL)
cur = readonly_conn.cursor()
cur.execute("SET search_path TO my_schema,public")
cur.close()
【问题讨论】:
标签: python postgresql psycopg2