Postgresql
使用 COPY FROM 時 psql 拒絕訪問文件
當我這樣做時:
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 phm
(rwxr-xr-x
)。r
for 目錄是列出其內容的能力,而不是進入它們(或使用其中的文件/目錄)。