sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgresql COPY-kommando, der giver tilladelser nægtet fejl

Et gæt:Du bruger Fedora, Red Hat Enterprise Linux, CentOS, Scientific Linux eller en af ​​de andre distros, der aktiverer SELinux som standard.

Enten og på dit bestemte OS/version tillader SELinux-politikkerne for PostgreSQL ikke serveren at læse filer uden for PostgreSQL-databiblioteket, eller filen blev oprettet af en tjeneste, der er dækket af en målrettet politik, så den har en etiket, som PostgreSQL ikke er lov til at læse fra.

Du kan bekræfte, om dette er problemet eller ej, ved at køre som root:

setenforce 0

derefter test igen. Kør:

setenforce 1

for at genaktivere SELinux efter test. setenforce er ikke permanent; SELinux vil alligevel automatisk blive genaktiveret ved genstart. At deaktivere SELinux permanent er normalt ikke en god løsning på problemer som dette; hvis du bekræfter, at problemet er SELinux, kan det udforskes yderligere.

Da du ikke har angivet det OS eller den version, du bruger, PostgreSQL-versionen, den nøjagtige kommando, du kører, ls -al på filen, \d+ på bordet osv., er det svært at give flere detaljer, eller at vide, om dette er mere end et gæt. Prøv at opdatere dit svar til at inkludere alt det og en ls --lcontext af filen også.



  1. Hvad er data og information og datamængder

  2. Forskellen mellem VARCHAR og TEXT i MySQL

  3. Kom godt i gang med SQL Server 2017 på Linux i Azure-portalen

  4. Vis alle nullbare kolonner i en SQL Server-database