PostgreSQL - 不一致的COPY权限错误
我在Windows 7,32位机器上使用EnterpriseDB pgAdmin III(v.1.12.1)与远程Linux服务器上的PostgreSQL数据库一起使用。我以用户postgres的身份登录,它允许我访问$ PGDATA目录(在这种情况下,它在这里找到:/ var/lib/pgsql/data /)PostgreSQL - 不一致的COPY权限错误
如果我通过终端,运行psql,并使用\copy
命令将csv文件中的数据导入到新创建的表中,我没有任何问题。
但是,如果我在pgAdmin中,则使用COPY命令将csv文件中的数据导入到新创建的表中。
COPY table_name FROM '/var/lib/pgsql/data/file.csv'
WITH DELIMITER AS ',' csv header
有时能正常工作,其他时候我收到权限错误:
ERROR: could not open file '/var/lib/pgsql/data/file.csv" for reading: Permission denied SQL state: 42501
它是被弄糊涂,我的错误的不一致。出现错误时,我将文件权限更改为644 - 777之间的任何位置,但不起作用。我也尝试将文件移动到其他文件夹,例如,var/tmp /,也没有效果。
任何想法?
我认为你的postgres用户仍然无法访问你的文件。
您是否尝试过下列命令?
CHOWN postgres的/var/lib/pgsql/data/file.csv
CHMODü+ R /var/lib/pgsql/data/file.csv
的问题是访问权限线槽目录到文件。例如,Postgres用户无权访问您的主文件夹。答案是使用一个文件夹,所有用户都可以访问/ tmp,或者创建一个具有正确权限的文件夹,这样任何用户都可以访问/读取/写入用户共享文件夹。
这是关于该主题的最佳答案。解决了我的问题。 – Digao 2017-03-17 11:52:56
Try \COPY table_name FROM '/var/lib/pgsql/data/file.csv'
WITH DELIMITER AS ',' csv header
通知书副本之前反斜杠,当你回来运行它削减它与用户运行权限其他明智的,它只是运行作为邮政局长该文档中弃用为最新版本的PG 的:|,无论如何,这可能会为你做的伎俩。
它不工作varun – 2013-04-24 06:38:28
我可能需要知道更多从你回答有用的东西,如果你只是需要移动东西尝试复制源文件在C:\ Users \ Public \ Documents – varun 2013-05-08 09:37:24
得到同样的问题,更改权限为777,用户postgres,用\选项尝试,但无法写入任何文件 – 2013-04-24 06:38:11