Postgresql

使用 COPY FROM 時 psql 拒絕訪問文件

  • May 21, 2020

當我這樣做時:

COPY "mytable" FROM '/my/file.csv' WITH DELIMITER AS ',' CSV;

對此:

-rw-r--r-- 1 peter peter 54819176 2011-07-21 13:17 file.csv

psql 告訴我這個:

ERROR:  could not open file "/my/file.csv" for reading: Permission denied

我怎樣才能閱讀我的文件?謝謝!

    • 更新

看起來apparmor在 Ubuntu 中預設安裝了一個名為的東西。

似乎與評論中提到的 SELinux 具有相同的功能。

    • 更新

刪除後apparmor,我仍然有同樣的問題。 selinux沒有安裝。

關於下面關於訪問的評論,COPY FROM 是從超級使用者帳戶執行的(如果沒有,它會給出不同的錯誤消息)和上面複製的文件權限,我理解為“每個人都可讀”。

    • 更新

我試圖訪問postgres使用者下的文件。它卡在樹上的特定位置

drwxr--r-- 6 peter peter 4096 2011-04-14 14:03 phm

postgres@dexter:/home/peter/PyPacks$ cd phm

bash: cd: phm: Permission denied

我想我會把文件放在其他地方,但這很奇怪!

drwxr--r-- 6 peter peter 4096 2011-04-14 14:03 phm

postgres@dexter:/home/peter/PyPacks$ cd phm

bash: cd: phm: Permission denied

目錄需要是可執行的才能進入它們(或使用其中的文件)。/從到 的所有子目錄都/home/peter/PyPacks/phm需要由您要用於此工作的使用者執行。

至少嘗試chmod 711 phm(應該給你rwx--x--x),或者也許chmod 755 phmrwxr-xr-x)。rfor 目錄是列出其內容的能力,而不是進入它們(或使用其中的文件/目錄)。

引用自:https://dba.stackexchange.com/questions/4021