Thread: could not open file xxxx for writing: Permission denied
Hello, Using PostgreSQL 8.1.4, pgadmin III 1.6.0 in WinXP I tried to export a table using COPY (first time in postgresql, did many times in Sybase): COPY ml50jtsk_datum_v TO 'c:/postgresql/ml50jtsk.out'; I got the following errormessage: ERROR: could not open file "c:/postgresql/ml50jtsk.out" for writing: Permission denied SQL state: 42501 What's wrong? Does it mean that the database user has no writing permission out of the database? How I did a pg_dump then few weeks ago? Many thanks for help and/or explanation, best regards and Happy New Year Tomas
That usually means that the database user doesn't have Windows file level permissions to write to that folder. Maybe when you upgraded to pgadmin 1.6 and now are using a different user id to log into the it? Perhaps the destination directory was c: \postgresql\8.1\data before? Mike On Thu, 2007-01-04 at 03:28 +0100, Tomas Lanczos wrote: > Hello, > > Using PostgreSQL 8.1.4, pgadmin III 1.6.0 in WinXP I tried to export a table > using COPY (first time in postgresql, did many times in Sybase): > > COPY ml50jtsk_datum_v TO 'c:/postgresql/ml50jtsk.out'; > > I got the following errormessage: > > ERROR: could not open file "c:/postgresql/ml50jtsk.out" for writing: > Permission denied > SQL state: 42501 > > What's wrong? Does it mean that the database user has no writing permission > out of the database? How I did a pg_dump then few weeks ago? > > Many thanks for help and/or explanation, best regards and Happy New Year > > Tomas > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq
> Hello, > > Using PostgreSQL 8.1.4, pgadmin III 1.6.0 in WinXP I tried to export a table > using COPY (first time in postgresql, did many times in Sybase): > > COPY ml50jtsk_datum_v TO 'c:/postgresql/ml50jtsk.out'; > > I got the following errormessage: > > ERROR: could not open file "c:/postgresql/ml50jtsk.out" for writing: > Permission denied > SQL state: 42501 > > What's wrong? Does it mean that the database user has no writing permission > out of the database? How I did a pg_dump then few weeks ago? Yes, that's what it means. pg_dump works because it uses the clients account, but copy uses the servers. To use client permissionswith copy in psql, use \copy instead. /Magnus
"Tomas Lanczos" <lanczos@t-zones.sk> wrote: > > Hello, > > Using PostgreSQL 8.1.4, pgadmin III 1.6.0 in WinXP I tried to export a table > using COPY (first time in postgresql, did many times in Sybase): > > COPY ml50jtsk_datum_v TO 'c:/postgresql/ml50jtsk.out'; > > I got the following errormessage: > > ERROR: could not open file "c:/postgresql/ml50jtsk.out" for writing: > Permission denied > SQL state: 42501 > > What's wrong? Does it mean that the database user has no writing permission > out of the database? How I did a pg_dump then few weeks ago? When you run a pg_dump, the file is created with the perms of the user calling the pg_dump program. When you do a "copy", the file is created with the perms of the user running the PostgreSQL _server_ process. Probably a user called "postgres". If the user the server runs as doesn't have permission to write to the specified directory, you'll see this error. As Magnus stated, you can do \copy, which executes the copy command in the the client instead of in the server, and it will have the perms of the user who started the client -- assuming you're using the psql program. You can also change that directory's perms to allow the server user to write to it, or choose a directory that the server user already has rights to. HTH, Bill