Lists: | pgsql-sql |
---|
From: | Harold A(dot) Giménez Ch(dot) <harold(dot)gimenez(at)gmail(dot)com> |
---|---|
To: | "sql pgsql" <pgsql-sql(at)postgresql(dot)org> |
Subject: | COPY command and required file permissions |
Date: | 2008-06-12 13:31:45 |
Message-ID: | c807ef1a0806120631r7df7800dnb25942ed4ddab740@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
Hi all,
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)
My question is, what are the set of permissions required to perform a
postgres copy?
I've set the permissions on the directory so that the postgres group owns
the directory and has read and execute permissions, as follows:
drwxrwxr-x 3 ruby_process postgres
I have also tried moving the files to /tmp and performing the copy from
there, unsuccesfuly.
Any ideas would be appreciated. Thanks,
-Harold
From: | "Pavel Stehule" <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Harold A(dot) Giménez Ch(dot) <harold(dot)gimenez(at)gmail(dot)com> |
Cc: | "sql pgsql" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: COPY command and required file permissions |
Date: | 2008-06-12 14:28:34 |
Message-ID: | 162867790806120728g1e2ec0e2s5126db773d50c3dd@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
2008/6/12 Harold A. Giménez Ch. <harold(dot)gimenez(at)gmail(dot)com>:
> Hi all,
> 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)
>
> My question is, what are the set of permissions required to perform a
> postgres copy?
user postgres has to have access for read.
regards
Pavel Stehule
>
> I've set the permissions on the directory so that the postgres group owns
> the directory and has read and execute permissions, as follows:
> drwxrwxr-x 3 ruby_process postgres
>
> I have also tried moving the files to /tmp and performing the copy from
> there, unsuccesfuly.
>
> Any ideas would be appreciated. Thanks,
> -Harold
>
>
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Harold A(dot) Giménez Ch(dot) <harold(dot)gimenez(at)gmail(dot)com> |
Cc: | "sql pgsql" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: COPY command and required file permissions |
Date: | 2008-06-12 14:48:00 |
Message-ID: | 9073.1213282080@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
"=?ISO-8859-1?Q?Harold_A._Gim=E9nez_Ch.?=" <harold(dot)gimenez(at)gmail(dot)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
From: | Harold A(dot) Giménez Ch(dot) <harold(dot)gimenez(at)gmail(dot)com> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "sql pgsql" <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: COPY command and required file permissions |
Date: | 2008-06-12 14:55:56 |
Message-ID: | c807ef1a0806120755s56423351x6f59fd44846bb42f@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
Thanks for the info. SELinux was the guilty party...
On Thu, Jun 12, 2008 at 10:48 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> "=?ISO-8859-1?Q?Harold_A._Gim=E9nez_Ch.?=" <harold(dot)gimenez(at)gmail(dot)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
>
From: | "bruno(dot)scovoli" <bruno(dot)scovoli(at)gmail(dot)com> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: COPY command and required file permissions |
Date: | 2010-06-23 21:01:35 |
Message-ID: | 28976565.post@talk.nabble.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
I have an script with many "\copy" commands. For example:
\copy privilegios from '/work/eclipse-workspace/Canoan
Server/database/load/privilegios.dat'
\copy privilegios_de_usuarios from '/work/eclipse-workspace/Canoan
Server/database/load/privilegios_de_usuarios.dat'
\copy classificacoes from '/work/eclipse-workspace/Canoan
Server/database/load/classificacoes.dat'
\copy tipo_de_produto from '/work/eclipse-workspace/Canoan
Server/database/load/tipos.dat'
This lines are OK. But when I remove the preceding backslash from them I get
the error that you mentioned.
Harold A. Giménez Ch. wrote:
>
> Hi all,
> 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)
>
> My question is, what are the set of permissions required to perform a
> postgres copy?
>
> I've set the permissions on the directory so that the postgres group owns
> the directory and has read and execute permissions, as follows:
> drwxrwxr-x 3 ruby_process postgres
>
> I have also tried moving the files to /tmp and performing the copy from
> there, unsuccesfuly.
>
> Any ideas would be appreciated. Thanks,
> -Harold
>
>
--
View this message in context: http://old.nabble.com/COPY-command-and-required-file-permissions-tp17800484p28976565.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.
From: | Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> |
---|---|
To: | "bruno(dot)scovoli" <bruno(dot)scovoli(at)gmail(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: COPY command and required file permissions |
Date: | 2010-06-25 18:37:25 |
Message-ID: | 4C24F765.40008@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
On 06/23/2010 02:01 PM, bruno.scovoli wrote:
>
> I have an script with many "\copy" commands. For example:
>
> \copy privilegios from '/work/eclipse-workspace/Canoan
> Server/database/load/privilegios.dat'
> \copy privilegios_de_usuarios from '/work/eclipse-workspace/Canoan
> Server/database/load/privilegios_de_usuarios.dat'
> \copy classificacoes from '/work/eclipse-workspace/Canoan
> Server/database/load/classificacoes.dat'
> \copy tipo_de_produto from '/work/eclipse-workspace/Canoan
> Server/database/load/tipos.dat'
>
> This lines are OK. But when I remove the preceding backslash from them I get
> the error that you mentioned.
>
>
> Harold A. Giménez Ch. wrote:
>>
>> Hi all,
>> 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)
>>
>> My question is, what are the set of permissions required to perform a
>> postgres copy?
>>
>> I've set the permissions on the directory so that the postgres group owns
>> the directory and has read and execute permissions, as follows:
>> drwxrwxr-x 3 ruby_process postgres
>>
>> I have also tried moving the files to /tmp and performing the copy from
>> there, unsuccesfuly.
>>
>> Any ideas would be appreciated. Thanks,
>> -Harold
>>
>>
>
Are you connecting to the database as a superuser to run the COPY command?
--
Adrian Klaver
adrian(dot)klaver(at)gmail(dot)com
From: | Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> |
---|---|
To: | Bruno Scovoli Santos <bruno(dot)scovoli(at)gmail(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: COPY command and required file permissions |
Date: | 2010-06-26 01:51:26 |
Message-ID: | 201006251851.26366.adrian.klaver@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-sql |
On Friday 25 June 2010 6:07:35 pm Bruno Scovoli Santos wrote:
> * Are you connecting to the database as a superuser to run the COPY
> command? *
>
> Yes. This \copy command is in the database build script (create table
> blablabla....). So it almost (I think) must have to be a superuser.
>
> But hey, my intent was just to guide the guy (Harold A. Giménez Ch.) to
> follow my practice (to use a preceding backslash). I dont bother to have to
> add that preceding backslash in my script. ;-)
>
>
Actually my question was directed to Harold, I put my reply in the wrong place.
In any case COPY and \copy are different commands. COPY is done from the
server's perspective, \copy from the clients. Hence the permission issues will
be different. See below for more detail.
http://www.postgresql.org/docs/8.4/interactive/sql-copy.html
http://www.postgresql.org/docs/8.4/interactive/app-psql.html
--
Adrian Klaver
adrian(dot)klaver(at)gmail(dot)com