sql >> Database >  >> RDS >> PostgreSQL

Postgresql COPY-commando geeft een fout met machtigingen geweigerd

Een gok:je gebruikt Fedora, Red Hat Enterprise Linux, CentOS, Scientific Linux of een van de andere distributies die SELinux standaard inschakelen.

Ofwel en op uw specifieke besturingssysteem/versie staat het SELinux-beleid voor PostgreSQL de server niet toe om bestanden buiten de PostgreSQL-gegevensdirectory te lezen, of het bestand is gemaakt door een service die onder een gericht beleid valt, dus het heeft een label dat PostgreSQL dat niet is toegestaan ​​om uit te lezen.

U kunt bevestigen of dit het probleem is door als root uit te voeren:

setenforce 0

dan opnieuw testen. Uitvoeren:

setenforce 1

om SELinux opnieuw in te schakelen na het testen. setenforce is niet permanent; SELinux zal hoe dan ook automatisch opnieuw worden ingeschakeld bij het opnieuw opstarten. SELinux permanent uitschakelen is meestal geen goede oplossing voor dit soort problemen; als je bevestigt dat het probleem SELinux is, kan het verder worden onderzocht.

Aangezien je niet het besturingssysteem of de versie die je gebruikt hebt gespecificeerd, de PostgreSQL-versie, het exacte commando dat je uitvoert, ls -al op het bestand, \d+ op tafel, enz., is het moeilijk om meer details te geven, of om te weten of dit meer dan een gok is. Probeer uw antwoord bij te werken om dat alles op te nemen en een ls --lcontext van het bestand ook.



  1. Problemen met de configuratie van transactielogboeken

  2. Hoe schrijf je een hoofdletterongevoelige query voor zowel MySQL als Postgres?

  3. Homebrew postgres kapot

  4. Cloudera CDP Data Center implementeren op Oracle Cloud Infrastructure (OCI)