Re: COPY command and required file permissions - Mailing list pgsql-sql

From Tom Lane
Subject Re: COPY command and required file permissions
Date
Msg-id 9073.1213282080@sss.pgh.pa.us
Whole thread Raw
In response to COPY command and required file permissions  ("Harold A. Giménez Ch." <harold.gimenez@gmail.com>)
Responses Re: COPY command and required file permissions
List pgsql-sql
"Harold A. Giménez Ch." <harold.gimenez@gmail.com> writes:
> In migrating an application from sql server to Postgres, I created a ruby
> script that extracts csv files from sql server (from a windows box), then
> SCPs them into a directory (/home/ruby_process) on the server running
> Postgres (a Fedora core 8) and finally runs the Postgres COPY command for
> each of the csv files.

> When the script runs the COPY commnand, I get the following error (for the
> genders table):

> ERROR    C42501  M could not open file "/home/ruby_process/genders.csv" for
> reading: Permission denied     Fcopy.c L1694   RCopyFrom (RuntimeError)

If you have the directory and file permissions straight, then my guess
is that you have SELinux turned on and it's disallowing the postgres
daemon from accessing anything "out of the ordinary".  The best fix
is probably to adjust the security labeling on your transfer directory.
I can't give you a cookbook recipe for that, but something along the
line of

/usr/bin/chcon -u system_u -r object_r -t postgresql_db_t /home/ruby_process

might do it.  I'm not sure if you'd need to fool with the permissions on
/home as well.

The easiest fix is to disable SELinux, but I wouldn't recommend that
unless the machine is entirely isolated from the internet.
        regards, tom lane


pgsql-sql by date:

Previous
From: "Pavel Stehule"
Date:
Subject: Re: COPY command and required file permissions
Next
From: "Harold A. Giménez Ch."
Date:
Subject: Re: COPY command and required file permissions