PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Команда Postgresql COPY, даваща грешка за отказа на разрешения

Предположение:Вие използвате Fedora, Red Hat Enterprise Linux, CentOS, Scientific Linux или някоя от другите дистрибуции, които активират SELinux по подразбиране.

Във вашата конкретна ОС/версия политиките на SELinux за PostgreSQL не позволяват на сървъра да чете файлове извън директорията с данни на PostgreSQL или файлът е създаден от услуга, обхваната от насочена политика, така че има етикет, че PostgreSQL не е разрешено за четене от.

Можете да потвърдите дали това е проблемът или не, като стартирате от root:

setenforce 0

след това повторно тестване. Пусни:

setenforce 1

за да активирате отново SELinux след тестване. setenforce не е постоянен; SELinux така или иначе автоматично ще бъде активиран отново при рестартиране. Постоянното деактивиране на SELinux обикновено не е добро решение за проблеми като този; ако потвърдите, че проблемът е SELinux, той може да бъде проучен допълнително.

Тъй като не сте посочили операционната система или версията, която използвате, версията на PostgreSQL, точната команда, която изпълнявате, ls -al във файла, \d+ на масата и т.н., трудно е да се дадат повече подробности или да се разбере дали това е нещо повече от предположение. Опитайте да актуализирате отговора си, за да включите всичко това и ls --lcontext на файла също.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирате PostgreSQL 12 на Ubuntu 20.04/18.04/16.04

  2. PostgreSQL :прехвърляне на низ към дата ДД/ММ/ГГГГ

  3. PostgreSQL използва стойност от предишния ред, ако липсва

  4. Прехвърляне на данни между бази данни с PostgreSQL

  5. Индексиране ando:GIN индекси