2013-08-14 1 views
0

Я знаю, этот вопрос уже поднимался другими, но даже пробовать предыдущие предложения, я все еще получаю эту ошибку ...ошибка разрешения при заполнении таблицы в PostGreSQL копирования из файла CSV

Когда я пытаюсь заполнить таблицы копирования из файла csv, я получаю ошибку разрешения.

COPY Eurasia FROM '/Users/Oritteropus/Desktop/eurasia1.csv' CSV HEADER; 

ERROR: could not open file "/Users/Oritteropus/Desktop/eurasia1.csv" for reading: Permission denied 
SQL state: 42501 

Как предполагалось ранее, в этих случаях, я изменил разрешение файла (CHMOD 711 или CHMOD eurasia1.csv а + г eurasia1.csv), и я также изменил права пользователя с:

ALTER USER postgres WITH SUPERUSER; #where postgres is my user 

Однако я все равно получаю ту же ошибку. Я также попытался вручную изменить привилегии из pgAdmin, но кажется, что уже предоставлена ​​привилегия. Я работаю над Mac Os, и я использую PostGreSQL 9.2.4.

Любое предложение? Спасибо

+0

проверки пользователя и группы, к которой этот файл принадлежит – Satya

+0

Файл принадлежит Oritteropus пользователя (компьютер пользователя): -rwxr-хт-х @ 1 Oritteropus персонал 390018694 25 Mag 05:54 eurasia1.csv – Oritteropus

+1

файловой будет считаться учетной записью, на которой работает сервер Postgres. Проверьте, есть ли у этой учетной записи необходимые разрешения, включая все каталоги в пути. –

ответ

0

Лучшим вариантом является изменение и использование COPY FROM STDIN, поскольку это позволяет избежать ряда проблем с разрешениями.

В качестве альтернативы вы можете убедиться, что пользователь postgres может получить доступ к файлу. Это редко бывает лучше, чем COPY FROM STDIN, однако по нескольким причинам.

  1. COPY TO STDOUT может, возможно, испортить ваши данные. Поскольку это связано с вводом-выводом файлов PostgreSQL, если ошибки существуют в COPY FROM STDIN, это может быть проблемой.

  2. Если вы делаете это на стороне сервера из-за проблем с автоматизацией/сохранением, это редко выигрывает, так как вы комбинируете транзакционные и не транзакционные эффекты. У КОПИРОВАНИЯ К STDOUT и COPY FROM STDIN эти проблемы отсутствуют. (Например, вам не нужно задаваться вопросом, действительно ли atime inode означает, что файл был правильно обработан).

Смежные вопросы