You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非超级用户调用list_postgres_log_files函数遇权限拒绝问题

PostgreSQL log_fdw 非超级用户无法查看日志文件的解决方法

问题根源

从函数权限查询结果\df+ list_postgres_log_files可以明确:

  • 函数my_extensions.list_postgres_log_files()的执行权限仅对rds_superuser开放(Access privileges字段显示rds_superuser=X/rds_superuser,其中X代表执行权限)
  • 函数安全属性为invoker(调用者权限),执行时会以当前用户身份运行,因此即使通过pg_monitor授权了底层pg_ls_logdir()的权限,若当前用户无此函数的执行权限,仍会触发permission denied错误。

解决步骤

  1. 切换回超级用户(如rds_superuser)执行权限授予操作:
GRANT EXECUTE ON FUNCTION my_extensions.list_postgres_log_files() TO foo;
  1. 切换到foo用户验证:
SET ROLE foo;
SELECT * FROM my_extensions.list_postgres_log_files() ORDER BY 1;

额外说明

如果需要通过log_fdw访问具体日志文件内容,需确保:

  • foo用户对已创建的日志外部表有SELECT权限
  • 若需自行创建外部表,当前已授权的USAGE,CREATE ON SCHEMA my_extensions和USAGE ON FOREIGN SERVER my_log_server权限已满足基础要求

内容的提问来源于stack exchange,提问作者Algoritmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 08:05:04