Python连接到PostgreSql Redshift数据库,试图运行权限续集,但无法运行.如何授予权限或运行权限查询



我正在尝试使用连接到PostgreSql的Python运行查询,使用psycopg2。我能够连接,但无法运行以"授予选择..."开头的权限的查询

尝试执行常规的"从列限制 1 中选择 *"以查看是否建立了连接以及我是否能够进行常规查询。我尝试过"向用户授予视图选择",但不起作用。

permissions = "grant select on view_activities to username;"
try:
    cur.execute(permissions)
    contents = "The permissions have been run"
    message = twilioCli.messages.create(body = contents, from_=twil, to = me)
except:
    contents = "The permissions have failed"
    message = twilioCli.messages.create(body = contents, from_=twil, to = me)

预期结果是收到一条文本消息,指出"权限已运行",指示此查询已运行且没有问题。但是,我得到第二个结果"权限失败",这表明查询未正确运行。我的理论是,postgres无法运行Python的"grant select..."。语法。

似乎您的代码的某些部分(可能未在此处添加(正在执行cursor.fetchall()cursor.fetchone(),这为我提供了相同的例外psycopg2.ProgrammingError: no results to fetch。一旦我删除了.fetchall().fetchone(),我的代码执行没有任何问题。

另外,请确保在执行GRANT后运行connection.commit(),否则它将被回滚。

相关内容

  • 没有找到相关文章