#postgresql
#postgresql
Вопрос:
Я использую postgresql с pgAdmin4 в Windows x64. Я только что создал базу данных, затем таблицу, и теперь я хочу добавить данные в таблицу из листа Excel с помощью
copy table from 'C:UsersusernameDesktopcopy.csv' delimiter ',' csv header;
Я получаю это сообщение об ошибке:
ОШИБКА: не удалось открыть файл «C:UsersusernameDesktopcopy.csv » для чтения: отказано в разрешении ПОДСКАЗКА: КОПИРОВАТЬ ИЗ дает указание серверному процессу PostgreSQL прочитать файл. Возможно, вам понадобится средство на стороне клиента, такое как copy psql. Состояние SQL: 42501
Я попытался запустить его от имени администратора, но это не помогло. Примечание: pgadmin 4 открывается в моем браузере Firefox с высокими настройками конфиденциальности, если это имеет к этому какое-либо отношение.
Комментарии:
1. Как говорится в подсказке, выполняемая вами команда выполняется на сервере Posgres, а не в клиентском процессе pgAdmin 4. То, как вы запускаете pgAdmin 4, не будет иметь никакого значения.
2. Вам нужно будет предоставить любому пользователю, которого вы регистрируете на сервере, разрешение на чтение из каталога, из которого вы пытаетесь скопировать. Разрешения должны быть установлены на самом сервере.
psql
copy
Команда более снисходительна к разрешениям… вы могли бы попробовать использовать это со стороны сервера.3. Спасибо за ответы. Как я могу установить разрешения на самом сервере?
Ответ №1:
Для людей, у которых все еще возникает эта проблема, одним из самых быстрых решений, которые я нашел (которые обходят изменения разрешений), является использование папки «Users Public» при чтении или записи файлов.
Например, если вы хотите читать в «copy.csv», перемещение местоположения файла в «Users Public copy.csv» должно позволить вам прочитать его без явной настройки разрешений для postgres / pgadmin