脚本必须将SQL数据导入PostgreSQL数据库。SQL包括以下两行代码:
SET session_replication_role = 'replica';
...
SET session_replication_role = 'origin';
开始导入的用户xyz
还没有权限执行此操作,将显示错误PG::InsufficientPrivilege
。
用户postgres
如何(使用哪个SQL查询)授予用户xyz
设置session_replication_role
的权限?我找不到任何相关文档。
2条答案
按热度按时间dauxcl2d1#
从PostgreSQL 15+开始,有一种方法可以做到这一点:
https://www.postgresql.org/docs/15/sql-grant.html
我还没有尝试过,但我敢打赌它运行良好-在版本14中,我在一个plpgsql过程的末尾使用了SECURITY DEFINER,其中包含“SET session_replication_role”语句,并确保超级用户帐户是该过程的定义者/所有者-然后,任何具有EXECUTE权限的用户仍然可以运行它,参数设置也如您所希望的那样工作。
jm81lzqq2#
这是不可能的:-(.见:
这似乎是目前只有超级用户权限才可能:设置此变量需要超级用户权限,请参阅postgresql.org/docs/current/runtime-config-client.html