Postgres COPY TO不适用于预期的目标目录

时间:2017-12-05 17:14:22

标签: postgresql permissions centos copy plesk

我编写了一个函数,根据来自Web的用户输入准备数据,并将结果作为csv复制到指定目录,包中(每个请求将包含来自3个不同表的信息) / csv文件)将供用户下载。

如果输出目录位于pg_data目录/var/lib/pgsql/data/adc_downloads中,则函数本身有效,权限为:

drwxr-xr-x  2 postgres postgres  4096 Dec  5 15:18 adc_downloads

但理想情况下,我希望输出目录位于此处:/var/www/vhosts/[vhostname]/httpdocs/adc_downloads。在pg_data中使用它之后,我使用chown -R --reference=/var/lib/pgsql/data/adc_downloads /var/www/vhosts/[vhostname]/httpdocs/adc_downloadschmod使用相同的参数来模仿看似有效的权限:

drwxr-xr-x  2 postgres postgres  4096 Dec  5 14:19 adc_downloads

但是在尝试使用预期的输出目录运行该函数时,我仍然遇到Permission denied错误。

其他一些必须覆盖我(试图?)设置的权限,任何想法可能是什么?鉴于函数本身在一个目录中工作但不在另一个目录中,我不认为它是SELinux issue,尽管我当然可能是错误的。

版本信息:Postgres 8.4 CentOS 6.5使用Plesk构建。

1 个答案:

答案 0 :(得分:0)

通过为/var/www/vhosts/[vhostname]/httpdocs/adc_downloads用户(包括other用户)添加执行权限,在预定位置postgres中使用此功能(感谢@ joop' s推荐) [vhostname]httpdocs目录