PostgreSQL - 不一致的COPY权限错误

Kat*_*e T 3 permissions pgadmin postgresql-8.4

我在Windows 7,32位机器上使用EnterpriseDB pgAdmin III(v.1.12.1)在远程Linux服务器上使用PostgreSQL数据库.我以用户postgres身份登录,这允许我访问$ PGDATA目录(在这个例子中,它位于:/ var/lib/pgsql/data /)

如果我通过终端登录服务器,运行psql,并使用该\copy命令将数据从csv文件导入新创建的表,我没有问题.

但是,如果我在pgAdmin中,则使用COPY命令将csv文件中的数据导入新创建的表中.

COPY table_name FROM '/var/lib/pgsql/data/file.csv' 
WITH DELIMITER AS ',' csv header
Run Code Online (Sandbox Code Playgroud)

有时这工作正常,有时我收到权限错误:

错误:无法打开文件'/var/lib/pgsql/data/file.csv"进行读取:权限被拒绝SQL状态:42501

错误的不一致让我感到困惑.出现错误时,我将文件权限更改为644 - 777之间的任何位置,但不起作用.我也尝试将文件移动到其他文件夹,例如var/tmp /,也没有效果.

有任何想法吗?

小智 5

问题是通过目录到文件的访问权限.例如,Postgres用户无权访问您的主文件夹.答案是使用所有用户都有访问权限的文件夹,如/ tmp,或创建一个具有正确权限的文件夹,以便任何用户都可以访问/读取/写入一种用户共享文件夹.