簡體   English   中英

從csv文件在PostGreSQL復制中填充表時出現權限錯誤

[英]permission error when populating a table in PostGreSQL copying from a csv file

我知道其他人已經提出過這個問題,但是即使嘗試以前的建議,我仍然會遇到此錯誤...

當我嘗試填充從csv文件復制的表時,出現權限錯誤。

COPY Eurasia FROM '/Users/Oritteropus/Desktop/eurasia1.csv' CSV HEADER;

ERROR: could not open file "/Users/Oritteropus/Desktop/eurasia1.csv" for reading: Permission denied
SQL state: 42501

如先前在這些情況下所建議的那樣,我更改了文件的權限(chmod 711 eurasia1.csv或chmod a + r eurasia1.csv),並且還通過以下方式更改了用戶權限:

ALTER USER postgres WITH SUPERUSER; #where postgres is my user

但是,我仍然遇到相同的錯誤。 我也嘗試從pgAdmin手動更改特權,但是似乎已經賦予了平均特權。 我正在Mac OS上工作,並且正在使用PostGreSQL 9.2.4。

有什么建議嗎? 謝謝

最好的選擇是更改並使用COPY FROM STDIN因為這樣可以避免很多權限問題。

另外,您可以確保postgres用戶可以訪問該文件。 但是,出於以下幾個原因,這很少比COPY FROM STDIN更好。

  1. COPY TO STDOUT可能會破壞您的數據。 因為如果COPY FROM STDIN中存在錯誤,則這涉及PostgreSQL的文件I / O,這也可能是一個問題。

  2. 如果您出於自動化/存儲過程的考慮而在服務器端進行此操作,那么這很少會是一個成功,因為您將事務性和非事務性效果結合在一起。 復制到標准輸出和從標准輸入復制沒有這些問題。 (例如,您不必懷疑inode的時間是否實際上意味着文件已正確處理)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM