3

是否存在通过 COPY WITHOUT SUPERUSER权限将 csv 加载到 postgresql 表中的任何方法?

4

2 回答 2

6

我设法使它像这样工作:

cat myfile.csv | psql -d mydb -c "COPY landing_tbl(field01, field02...) FROM STDIN CSV;"
于 2018-05-20T10:34:04.740 回答
5

您可以使用

COPY tabname FROM 'filename'

这需要超级用户权限或

COPY tabname FROM STDIN

这不需要超级用户权限。

出于安全原因,PostgreSQL 需要超级用户权限才能访问数据库服务器上的文件。

一种解决方法是编写一个由为您SECURITY DEFINER执行此操作的超级用户拥有的数据库函数COPY。然后每个拥有EXECUTE该功能权限的人(默认情况下每个人,所以更改它)都可以执行该操作。

于 2017-10-31T08:56:15.877 回答