是否有任何方法可以通过COPY WITHOUT SUPERUSER 权限将csv加载到postgresql表中?
答案 0 :(得分:4)
您可以使用
COPY tabname FROM 'filename'
需要超级用户权限或
COPY tabname FROM STDIN
并不需要超级用户权限。
出于安全原因,PostgreSQL需要超级用户权限才能访问数据库服务器上的文件。
一种解决方法是编写一个数据库函数,其中SECURITY DEFINER
由超级用户拥有,为您执行COPY
。然后每个对该函数具有EXECUTE
权限的人(默认情况下每个人都可以更改)可以执行该操作。
答案 1 :(得分:0)
我设法让它像这样工作:
cat myfile.csv | psql -d mydb -c "COPY landing_tbl(field01, field02...) FROM STDIN CSV;"