PostgreSQL用户权限授予问题:pg_terminate_backend执行权限报错排查
PostgreSQL pg_terminate_backend() 授权错误解决方法
导致授权报错的核心原因是PostgreSQL函数是按完整参数签名区分的,你使用的无参数函数名无法匹配到实际存在的带参数的pg_terminate_backend函数。
解决步骤:
- 正确的授权语句必须指定函数的完整参数签名,
pg_terminate_backend的参数是pid integer,所以授权语句应为:GRANT EXECUTE ON FUNCTION pg_terminate_backend(pid integer) TO <db_user>; - 如果你的当前数据库schema不是
pg_catalog(该函数默认归属的schema),建议加上schema前缀避免歧义:GRANT EXECUTE ON FUNCTION pg_catalog.pg_terminate_backend(pid integer) TO <db_user>; - 验证函数签名:可以在psql中执行
\df pg_terminate_backend,查看该函数的完整定义,确认参数类型和归属schema。
内容的提问来源于stack exchange,提问作者Abhi
相关产品推荐
相关产品推荐

