Postgresql函数加载csv没有SUPERUSER

时间:2017-10-31 08:50:21

标签: postgresql csv import superuser

是否有任何方法可以通过COPY WITHOUT SUPERUSER 权限将csv加载到postgresql表中?

2 个答案:

答案 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;"