| From: | Roland Müller <rolmur(at)gmail(dot)com> |
|---|---|
| To: | pgsql-sql(at)lists(dot)postgresql(dot)org |
| Subject: | Re: Linux file permission for COPY TO SQL command |
| Date: | 2025-10-29 20:11:19 |
| Message-ID: | 7f2d2a9e-f135-4147-8781-417ad09b7360@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
I think the best solution is to use the psql '\copy' that works the same
way as server-side COPY or COPY TO.
in addition, the output is always stored in the client machine
regardless whetehr the server is in localhost, remote or inside a container.
postgres=# \copy (SELECT * FROM pg_class) to /home/MYACCOUNT/Desktop/OUT
COPY 420
postgres=# \! ls -ltr /home/MYACCOUNT/Desktop/OUT
-rw-rw-r-- 1 MYACCOUNT MYACCOUNT 49291 Oct 29 22:06
/home/MYACCOUNT/Desktop/OUT
On 10/29/25 21:55, Tom Lane wrote:
> Krzysztof <kj(at)limes(dot)com(dot)pl> writes:
>> Actually server and client are installed on the same machine.
>> The file (real file) permissions are as follows:
>> -rwxrwxrwx+ 1 kaj kaj 2 Oct 27 22:36 fd/fdo.txt
>> The directory permissions are as follows:
>> drwxrwxrwx+ 4 kaj kaj 4096 Oct 27 22:36 fd
>> The SQL command which tries to write to the file is this:
>> copy (select key from xcg where add=false) to '/home/kaj/fd/fdo.txt';
> The /home and /home/kaj directories would also need to be
> world-searchable for the server to be able to write there.
> (Do not make them world-writable...)
>
> Did you notice the HINT that goes with that error message?
>
> HINT: COPY TO instructs the PostgreSQL server process to write a file. You may want a client-side facility such as psql's \copy.
>
> regards, tom lane
>
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Krzysztof | 2025-11-02 21:45:51 | Re: Linux file permission for COPY TO SQL command |
| Previous Message | Tom Lane | 2025-10-29 19:55:53 | Re: Linux file permission for COPY TO SQL command |